如何使用 argmax 沿轴获取 numpy 二维数组每一列中的最大值?
How use argmax along axis to get maximum values in each column of numpy 2D array?
例如我有以下二维数组:
array([[ 5.59635947, 1.42474555, 1.56519762],
[ 6.16476541, 6.12324772, 5.32735447],
[ 8.60258444, 7.16592582, 1.49555662],
[ 0.63983973, 5.50249666, 3.52246942],
[ 5.34002941, 4.87065573, 9.80725886]])
我使用 argmax along axis= 0 来获取每列中最大元素的位置:
i = np.argmax(c,axis=0)
array([2, 2, 4])
嗯,我已经计算了指数。如何获得每列的最大元素?
当我编写如下代码时:
dd_m= np.zeros(i.shape)
for k in np.arange(i.size):
dd_m[k] = c[i[k],k]
我得到正确答案,即:
array([ 8.60258444, 7.16592582, 9.80725886])
是否有更高效或 pythonic 的方式来做到这一点?
尝试:
c.max(axis=0)
或:
np.max(c, axis=0)
或者如果您已经计算了指数:
c[i, np.arange(c.shape[1])]
其中 c
是您的矩阵,i
是找到的最大值索引。
例如我有以下二维数组:
array([[ 5.59635947, 1.42474555, 1.56519762],
[ 6.16476541, 6.12324772, 5.32735447],
[ 8.60258444, 7.16592582, 1.49555662],
[ 0.63983973, 5.50249666, 3.52246942],
[ 5.34002941, 4.87065573, 9.80725886]])
我使用 argmax along axis= 0 来获取每列中最大元素的位置:
i = np.argmax(c,axis=0)
array([2, 2, 4])
嗯,我已经计算了指数。如何获得每列的最大元素?
当我编写如下代码时:
dd_m= np.zeros(i.shape)
for k in np.arange(i.size):
dd_m[k] = c[i[k],k]
我得到正确答案,即:
array([ 8.60258444, 7.16592582, 9.80725886])
是否有更高效或 pythonic 的方式来做到这一点?
尝试:
c.max(axis=0)
或:
np.max(c, axis=0)
或者如果您已经计算了指数:
c[i, np.arange(c.shape[1])]
其中 c
是您的矩阵,i
是找到的最大值索引。