2017-06-01 106 views
0

我正在寻找类似list.index(value)的东西,它适用于numpy数组。我认为numpy.where可能会诀窍,但我不明白它是如何工作的,确切地说。可能有人请解释说明numpy.where

一)这是什么意思

和b)它是否就像list.index(value)但numpy的阵列。

这是从文档的文章:

numpy.where(条件[X,Y])

返回元件,无论是从Xÿ ,取决于条件
如果只给出条件,return condition.nonzero()

参数:条件:array_like,布尔

为TRUE时,产率的x,否则成品率Y。

X,Y:array_like,可选

值可供选择。 x和y需要与 条件具有相同的形状。 返回:出:ndarray或元组ndarrays的

如果同时指定x和y时,输出数组包含的 x,其中条件为真,并从其他地方ÿ元素的元素。如果仅给出 条件,则返回元组condition.nonzero(),索引 ,其中条件为True。还参见非零,选择

如果x和y给出和输入数组是1-d,其中是 等同于: [ⅩⅤ如果c别的YV在 (C,XV,YV)拉链(条件,X,Y)]

+0

这里有一个非常类似的问题:https://stackoverflow.com/questions/432112/is-there-a-numpy-function-to-return-the-first-index-of-something-in-an-array – ayhan

+1

“a)这意味着什么” - 您是否阅读过您在此发布的文档中的摘录? – ForceBru

+0

@ForceBru是的,它没有多大帮助。 – evtoh

回答

1

这意味着什么?:

numpy.where函数采用的条件作为参数,并返回其中该条件是true

012的索引

是像list.index

正是在它返回在条件满足的数组指数收市,而list.index需要一个值作为参数,这可以用numpy.where通过传递array == value为实现条件。

实施例:

使用数组

a = numpy.array([[1,2,3], 
       [4,5,6], 
       [7,8,9]]) 

和主叫numpy.where(a == 4)返回(array([1]), array([0]))

主叫numpy.where(a >= 4)返回(array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2])),Y和X坐标(分别),其中所述病症是true的两个阵列。