解释numpy.where

时间:2017-06-01 18:57:19

标签: python numpy

我正在寻找类似于适用于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)]

1 个答案:

答案 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]))