如何不仅选择`numpy.ndarray`的最大值,而选择python中的前3个最大值?

Auf*_*ind 3 python select numpy max

我有一个存储在row类型变量中的浮点值列表(正值和负值)<type 'numpy.ndarray'>.

max_value = max(row)
Run Code Online (Sandbox Code Playgroud)

给了我最大的价值row.有没有一种优雅的方式来选择前3(5,10,...)值?

我想出来了

  1. 从中选择最大值 row
  2. 删除最大值 row
  3. 从中选择最大值 row
  4. 删除最大值 row
  5. 等等

但这肯定是一种丑陋的风格,而不是pythonic.蟒蛇人对此说了些什么?:)


编辑

我不仅需要最大三个值,还需要位置(索引输入row).对不起,我忘了提到......

Jos*_*del 9

我会用 np.argsort

a = np.arange(10)
a[np.argsort(a)[-3:]]
Run Code Online (Sandbox Code Playgroud)

编辑 要获得该职位,只需使用:

ii = np.argsort(a)[-3:] # positions
vals = a[ii]            # values
Run Code Online (Sandbox Code Playgroud)