所以我的问题很简单。我有一个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,只是一个整数。
答案 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)
)中的最大值。