如何沿轴使用argmax来获得numpy 2D数组的每列中的最大值? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

例如,我有以下2D数组:

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]])

我沿轴= 0使用argmax来获取每列中最大元素的位置:

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方式来做到这一点?

python numpy multidimensional-array max argmax
1个回答
0
投票

尝试:

c.max(axis=0)

要么:

np.max(c, axis=0)

或者,如果您已经计算了指数:

c[i, np.arange(c.shape[1])]

c是你的矩阵的地方,i是最大值的找到指数。

© www.soinside.com 2019 - 2024. All rights reserved.