我有一个数组:
arr = [23,34,2,55,5,13,44,3]
我想保存 n 个最大的数字及其索引。
例如,对于 n = 2,我想要
[(55,3), (44,6)]
我找不到一个简单的方法来做到这一点..
我只找到了如何使用 nlargest
获取 n 个最大的项目或使用 argpartition
获取 n 个最大的索引。
最佳答案
免责声明:不是 numpy 解决方案 - 您可以结合使用 enumerate
、sorted
、生成器理解和列表切片:
n = 3
s = list(sorted( ((v,i) for i,v in enumerate([23,34,2,55,5,13,44,3]) ),reverse = True))[:n]
print(s)
输出:
[(55, 3), (44, 6), (34, 1)]
独库:
生成器用于翻转枚举产生的索引和值,切片减少结果量。
关于python - 列表中最大的 n 个元素的项目和索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55600085/