我正在阅读numpy.where(condition[, x, y])
documentation,但我无法理解这个小例子:
>>> x = np.arange(9.).reshape(3, 3)
>>> np.where( x > 5 )
Out: (array([2, 2, 2]), array([0, 1, 2]))
有人可以解释一下结果如何?
答案 0 :(得分:6)
第一个数组(array([2, 2, 2])
)是行的索引,第二个数组(array([0, 1, 2])
)是那些超过5的值的列。
您可以使用zip
来获取确切的值索引:
>>> zip(*np.where( x > 5 ))
[(2, 0), (2, 1), (2, 2)]
或使用np.dstack
:
>>> np.dstack(np.where( x > 5 ))
array([[[2, 0],
[2, 1],
[2, 2]]])
答案 1 :(得分:2)
根据您的情况打印坐标
import numpy as np
x = np.arange(9.).reshape(3, 3)
print x
print np.where( x > 5 )
print x print:
[[ 0. 1. 2.]
[ 3. 4. 5.]
[ 6. 7. 8.]]
和np.where( x > 5 )
打印所有大于5的元素的索引位置
(array([2, 2, 2]), array([0, 1, 2]))
其中2,0 == 6和2,1 == 7和2,2 == 8