如何在给定轴(比如2)的多维numpy数组中得到N个最大值?

时间:2018-06-17 10:34:10

标签: python arrays numpy

由于argmax只给出一个最大值,我们怎样才能找到至少2个或3个元素而不只是一个。

目前我的输入格式为np.argmax(array,axis = 2),它只提供一个最大值,我必须从N维数组中提取2或3个

2 个答案:

答案 0 :(得分:1)

我会尝试使用名为argpartition()的函数。要获得两个最大元素的索引,请执行:

import numpy as np

a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0])

ind = np.argpartition(a, -2)[-2:] 

ind
Out[13]: array([5, 0], dtype=int64)

a[ind]
Out[14]: array([9, 9])

答案 1 :(得分:1)

使用numpy.argsort。来自@CarlesSansFuentes的数据。

<item name="cardViewStyle">@style/CardView.Light</item>