【问题标题】:Extract indices of multiple elements from 2D Numpy array, Python从 2D Numpy 数组中提取多个元素的索引,Python
【发布时间】:2021-02-01 00:14:15
【问题描述】:

我有一个 2D numpy 数组

import numpy as np
x = np.array([[7, 7, 7],
              [4, 7, 7],
              [4, 0, 0]])

我提取的 y 是

y = [4 4]

现在我想提取 x 中 [4 4] 的索引

我正在使用以下方法

indices = np.argwhere(x == y)

结果[[1 0][2 0]

但在某些情况下,此代码会失败。您能建议任何其他方式来执行相同的任务吗

【问题讨论】:

  • x==y 不起作用,是吗? x==4 是一个布尔值,其中 x 是 4。np.nonzero(x==4) 是一个索引元组,这是真的。 x[x==4] 产生 ynp.argwhere(x==4)nonzero 类似,但索引并不那么有用。您也可以通过x[1:, 0] 获取y

标签: python numpy indexing


【解决方案1】:

你也可以使用nonzero()

indices = np.nonzero(x == 4)
# (array([1, 2]), array([0, 0]))

Numpy Documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 2015-11-18
    • 1970-01-01
    • 2015-05-22
    相关资源
    最近更新 更多