获取二维数组的 ArgMax
Getting ArgMax of a 2d Array
所以我的问题很简单。我有一个 3 维数组,想单独获得前两个轴的最大值。
import numpy as np
array = np.zeros((3,3,2))
array[1][1][0] = 1
array[1][1][1] = 2
我现在如何检查 [1][1] 哪个值具有最大值?我怀疑使用 np.argmax() 但我用谷歌搜索了很长时间,但找不到可行的解决方案。提前致谢!
明确一点,我希望我的 return 为 2,只是一个整数。
对于你所描述的,你可以这样做:
array[1,1].max()
这将 return 2. 如果您想要前两个轴的每个组合沿着最后一个轴的最大值,您可以这样做:
array.max(axis=-1)
在您的情况下,这将 return 沿最后一个轴的最大值的 3x3 数组:
[[0. 0. 0.]
[0. 2. 0.]
[0. 0. 0.]]
如果你想要最大值的 indices,你可以使用 argmax
,就像上面 max
一样:
array[1,1].argmax()
在这种情况下 return 只是 1
。然后,您必须将其附加到 (1,1)
以获得原始数组中最大值的完整索引(即 (1,1,1)
)。
所以我的问题很简单。我有一个 3 维数组,想单独获得前两个轴的最大值。
import numpy as np
array = np.zeros((3,3,2))
array[1][1][0] = 1
array[1][1][1] = 2
我现在如何检查 [1][1] 哪个值具有最大值?我怀疑使用 np.argmax() 但我用谷歌搜索了很长时间,但找不到可行的解决方案。提前致谢!
明确一点,我希望我的 return 为 2,只是一个整数。
对于你所描述的,你可以这样做:
array[1,1].max()
这将 return 2. 如果您想要前两个轴的每个组合沿着最后一个轴的最大值,您可以这样做:
array.max(axis=-1)
在您的情况下,这将 return 沿最后一个轴的最大值的 3x3 数组:
[[0. 0. 0.]
[0. 2. 0.]
[0. 0. 0.]]
如果你想要最大值的 indices,你可以使用 argmax
,就像上面 max
一样:
array[1,1].argmax()
在这种情况下 return 只是 1
。然后,您必须将其附加到 (1,1)
以获得原始数组中最大值的完整索引(即 (1,1,1)
)。