例如,我有一个3x3 numpy数组,如下所示
a=numpy.array([3,2,1],
[2,5,6],
[4,7,8])
如果给定的值是8,那么我应该得到像[3,3]这样的东西 如果给定的值是2,那么我应该得到[0,1]和[1,0],因为数组中有两个'
我知道这很简单,循环,,但我想知道是否有效率" Pythonic"用最少的代码行解决它的方式(或用任何花哨的numpy函数)。感谢
答案 0 :(得分:3)
您可以使用np.argwhere
:
import numpy as np
a = np.array([[3, 2, 1],
[2, 5, 6],
[4, 7, 8]])
print np.argwhere(a == 8)
>>> [[2 2]]
print np.argwhere(a == 2)
>>> [[0 1]
[1 0]]
答案 1 :(得分:1)
这将为您提供元组中数组的索引。
np.where(a == 3) # (array([0]), array([0]))
np.where(a == 2) # (array([0, 1]), array([1, 0]))