获取与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行匹配条件second
element == 2。


问题答案:

使用np.where返回指数:

In [79]:

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