从 numpy 数组中获取排名

我有一个像下面这样的 numpy 数组

values = [0.1, 0.9, 0.8, 0.65, 0.2, 0.7]

我需要知道最高价值的价值和指数,我得到了

int(np.argmax(values))
max(values)

但现在我还需要知道数组中第二高和第三高的值并相应地保留索引。如何修改我的代码以获取这些值?


ABOUTYOU
浏览 112回答 3
3回答

江户川乱折腾

您可以使用np.argsort,它为您提供最大数字的索引。indices = np.argsort(values)[::-1] print(indices)该[::-1]反转名单,这是必要的,因为argsort回报递增的顺序指数。这给出:[1, 2, 5, 3, 4, 0]然后你可以使用values[indices[n]]检索第n-th 个最大值。

九州编程

只需删除最高值,然后使用 int(np.argmax(values))

杨__羊羊

np.argsort(values)退货array([0, 4, 3, 5, 2, 1])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python