我有以下数组。我想通过数组的搜索键提取索引。
np.array([[1,2],[2,2], [3,2], [2,2]])
&#39} s shep是(4, 2)
。因此,搜索[2, 2]
的结果应该返回[1, 3]
,这是[2, 2]
的索引。 np.argwhere
是一个强大的功能,但如何将此用于我的目的?
In [31]: d=np.array([[1,2],[2,2], [3,2], [2,2]])
In [32]: d
Out[32]:
array([[1, 2],
[2, 2],
[3, 2],
[2, 2]])
In [33]: np.where(d==np.array([2,2]))
Out[33]: (array([0, 1, 1, 2, 3, 3]), array([1, 0, 1, 1, 0, 1]))
In [34]: np.argwhere(d==np.array([2,2]))
Out[34]:
array([[0, 1],
[1, 0],
[1, 1],
[2, 1],
[3, 0],
[3, 1]])
答案 0 :(得分:0)
使用np.all(..., axis=1)
减少第二轴上的布尔数组,然后使用np.where
:
np.where((d == [2, 2]).all(1))[0]
# array([1, 3])