x.argmax(0)
给出沿第 1 轴的最大值索引。使用np.indices
生成另一个轴的索引。
x = np.array([[[1,2],[0,1]],[[3,4],[6,7]]])
x.argmax(0)
array([[1, 1],
[1, 1]])
a1, a2 = np.indices((2,2))
(x.argmax(0),a1,a2)
(array([[1, 1],
[1, 1]]),
array([[0, 0],
[1, 1]]),
array([[0, 1],
[0, 1]]))
x[x.argmax(0),a1,a2]
array([[3, 4],
[6, 7]])
x[a1,x.argmax(1),a2]
array([[1, 2],
[6, 7]])
x[a1,a2,x.argmax(2)]
array([[2, 1],
[4, 7]])
If x
有其他维度,生成a1
, and a2
适当地。
官方文档并没有说太多如何使用argmax
,但早期的 SO 线程已经讨论过它。我从这里得到了这个总体想法在多维数组上使用 numpy.argmax() https://stackoverflow.com/questions/5798364/using-numpy-argmax-on-multidimensional-arrays