所以我的问题很简单。我有一个 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,只是一个整数。
对于你所描述的,你可以这样做:
array[1,1].max()
这将返回 2。如果您想要前两个轴的每个组合沿最后一个轴的最大值,您可以:
array.max(axis=-1)
在您的情况下,它将沿最后一个轴返回最大值的 3x3 数组:
[[0. 0. 0.]
[0. 2. 0.]
[0. 0. 0.]]
如果您想要最大值的索引argmax
,则可以使用,就像max
上面一样:
array[1,1].argmax()
在这种情况下,它只返回1
. 然后,您必须附加它(1,1)
以获得原始数组中最大值的完整索引(即(1,1,1)
)。