获取二维数组的ArgMax

时间:2018-12-12 23:33:13

标签: python numpy argmax

所以我的问题很简单。我有一个3-d数组,想在前两个轴上单独获得最大值。

import numpy as np
array = np.zeros((3,3,2))
array[1][1][0] = 1
array[1][1][1] = 2

现在如何检查[1] [1]哪个值具有最大值?我会怀疑使用np.argmax(),但是我搜索了很长时间并且找不到有效的解决方案。预先谢谢你!

需要明确的是,我希望我的返回值为2,只是一个整数。

1 个答案:

答案 0 :(得分:0)

对于您描述的内容,您可以这样做:

array[1,1].max()

,它将返回2。如果相反,您希望前两个轴的每个组合都沿着最后一个轴具有最大值,则可以这样做:

array.max(axis=-1)

在您的情况下,它将沿最后一个轴返回一个3x3的最大值数组:

[[0. 0. 0.]
 [0. 2. 0.]
 [0. 0. 0.]]

如果希望最大值的 indices ,请改用argmax,就像上面的max

array[1,1].argmax()

,在这种情况下仅返回1。然后,您必须将其附加到(1,1)上,以使完整索引达到原始数组(即(1,1,1))中的最大值。