我正在寻找类似于适用于numpy数组的list.index(value)
的东西。我认为numpy.where
可能会成功,但我不明白它是如何工作的。请有人解释一下
a)这意味着什么
和b)它是否像list.index(value)
一样工作但是有numpy数组。
这是文档中的文章:
numpy.where(条件[,x,y])
从 x 或 y 返回元素,具体取决于条件。
如果仅给出条件,return condition.nonzero()
。参数:条件:array_like,bool
当为真时,产生x,否则产生y。
x,y: array_like,可选
可供选择的值。 x和y需要具有相同的形状 条件。 返回: out: ndarray或ndarrays的元组
如果同时指定了x和y,则输出数组包含的元素 x其中condition为True,其他元素来自y。要是 条件给出,返回元组condition.nonzero(),索引 条件为真的地方。另见非零,选择
注释 如果给出x和y并且输入数组是1-D,则其中 相当于: [xv if c else yv for(c,xv,yv)in 拉链(条件,X,Y)]
答案 0 :(得分:3)
这意味着什么?:
numpy.where
函数将条件作为参数并返回该条件为true
的索引
是否像list.index
?:
它很接近,它返回满足条件的数组的索引,而list.index
取一个值作为参数,这可以通过传递{{1} 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)
,两个Y和X坐标数组(分别为),条件为(array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))
。