从2D Numpy数组中提取多个元素的索引,Python

从2D Numpy数组中提取多个元素的索引,Python,python,numpy,indexing,Python,Numpy,Indexing,我有一个2D numpy数组 import numpy as np x = np.array([[7, 7, 7], [4, 7, 7], [4, 0, 0]]) 我提取了y,这是 y = [4 4] 现在我想提取[4]在x中的指数 我使用以下方法 indices = np.argwhere(x == y) 结果是[[1 0][2 0] 但在某些情况下,此代码会失败。请您建议执行相同任务的其他方法。您也可以使用nonzero() x=

我有一个2D numpy数组

import numpy as np
x = np.array([[7, 7, 7],
              [4, 7, 7],
              [4, 0, 0]])
我提取了y,这是

y = [4 4]
现在我想提取[4]在x中的指数

我使用以下方法

indices = np.argwhere(x == y)
结果是
[[1 0][2 0]


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

您也可以使用
nonzero()


x==y
不起作用,是吗?
x==4
是一个布尔值,其中
x
是4。
np.nonzero(x==4)
是一个索引元组,其中为真。
x[x==4]
产生
y
np.argwhere(x==4)
类似于
非零
,但索引没有那么有用。您也可以执行
x[1:0]
来获得
y
indices = np.nonzero(x == 4)
# (array([1, 2]), array([0, 0]))