对于单个数组,有很多解决方案可以做到这一点,但是矩阵呢?例如:

>>> k
array([[ 35,  48,  63],
       [ 60,  77,  96],
       [ 91, 112, 135]])

您可以使用k.max(),但是当然这只会返回最大值135。如果我想要第二或第三怎么办?

最佳答案

您可以flatten矩阵,然后对其进行排序:

>>> k = np.array([[ 35,  48,  63],
...        [ 60,  77,  96],
...        [ 91, 112, 135]])
>>> flat=k.flatten()
>>> flat.sort()
>>> flat
array([ 35,  48,  60,  63,  77,  91,  96, 112, 135])
>>> flat[-2]
112
>>> flat[-3]
96

关于python - 在numpy矩阵中找到第n个最大值的最快方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33181350/

10-10 14:05