【问题标题】:How to get the index of a particular row using column values in numpy?如何使用numpy中的列值获取特定行的索引?
【发布时间】:2020-08-06 04:05:10
【问题描述】:

所以如果我有以下数组 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)

有没有办法做到这一点?非常感谢任何建议!

【问题讨论】:

    标签: python numpy indexing numpy-slicing


    【解决方案1】:

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

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

    【讨论】:

    • 干得好!这正是我所追求的!我尝试使用所有,但我无法获得预期的结果!非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    相关资源
    最近更新 更多