如何使用 numpy 中的列值获取特定行的索引?

How to get the index of a particular row using column values in numpy?

所以如果我有以下数组 arr:

>>> arr
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

现在如果我想获取第一行,我会这样做:

>>> arr[0]
array([0, 1, 2, 3, 4])

但是,当我使用 np.where 定位特定行时,例如:

>>> np.where(arr == [0,1,2,3,4])

我得到了这个输出!

(array([0, 0, 0, 0, 0, 3, 3, 3, 3, 3], dtype=int64), 
array([0, 1, 2, 3, 4, 0, 1, 2, 3, 4], dtype=int64))

然而,这不是我想要的。我想获取行索引。例如:

(array([0, 3], dtype=int64)

有办法实现吗?非常感谢任何建议!

我想你想检查行是否等于给定的数组。在这种情况下,您需要 all:

np.where((arr == [0,1,2,3,4]).all(1))
# (array([0, 3]),)