获取二维数组的 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))。