为了账号安全,请及时绑定邮箱和手机立即绑定

从 numpy 数组中获取排名

从 numpy 数组中获取排名

ABOUTYOU 2021-07-27 04:48:27
我有一个像下面这样的 numpy 数组values = [0.1, 0.9, 0.8, 0.65, 0.2, 0.7]我需要知道最高价值的价值和指数,我得到了int(np.argmax(values)) max(values)但现在我还需要知道数组中第二高和第三高的值并相应地保留索引。如何修改我的代码以获取这些值?
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您可以使用np.argsort,它为您提供最大数字的索引。

indices = np.argsort(values)[::-1]
print(indices)

[::-1]反转名单,这是必要的,因为argsort回报递增的顺序指数。这给出:

[1, 2, 5, 3, 4, 0]

然后你可以使用

values[indices[n]]

检索第n-th 个最大值。


查看完整回答
反对 回复 2021-08-03
?
九州编程

TA贡献1785条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-08-03
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

np.argsort(values)

退货

array([0, 4, 3, 5, 2, 1])


查看完整回答
反对 回复 2021-08-03
  • 3 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信