如何在numpy

时间:2018-05-17 02:59:46

标签: python numpy

我有以下数组。我想通过数组的搜索键提取索引。 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]])

1 个答案:

答案 0 :(得分:0)

使用np.all(..., axis=1)减少第二轴上的布尔数组,然后使用np.where

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