获取与numpy中的条件匹配的行数

时间:2015-05-09 23:09:42

标签: python arrays numpy

假设我有一个像numpy数组:

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

我想检查第二个元素是否== 2.

我知道我可以这样做:

>>> a[:,1]==2
array([ True, False, False,  True], dtype=bool)

返回布尔值。我的问题是,如何获取条件为真的行的行号?在这个例子中,我想回到array([0, 3])因为第0行和第3行匹配条件第二个元素== 2.

1 个答案:

答案 0 :(得分:8)

使用np.where返回索引:

In [79]:

np.where(a[:,1]==2)
Out[79]:
(array([0, 3], dtype=int64),)