我有一个存储在变量 row
中的浮点值列表(正值和负值)类型 <type 'numpy.ndarray'>
.
max_value = max(row)
给我 row
的最大值.是否有一种优雅的方式来选择前 3 个(5、10...)值?
我想到了
- 从
row
中选择最大值 - 删除
row
中的最大值 - 从
row
中选择最大值 - 删除
row
中的最大值 - 等等
但这肯定是一种丑陋的风格,根本不是 pythonic。 pythonistas 对此怎么说? :)
编辑
我不仅需要最大的三个值,还需要位置(row
中的索引)。对不起,我忘了说...
最佳答案
我会使用 np.argsort
a = np.arange(10)
a[np.argsort(a)[-3:]]
编辑 要同时获得位置,只需使用:
ii = np.argsort(a)[-3:] # positions
vals = a[ii] # values
关于python - 如何不仅选择 `numpy.ndarray` 的最大值,而且选择 python 中的前 3 个最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6256178/