如何使用 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]),)
所以如果我有以下数组 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]),)