NumPy数组的返回顺序

mik*_*ike 4 python arrays sorting numpy

我正在尝试返回一个数组,该数组在数组中具有每个值的等级.例如,给定以下数组:

import numpy as np
arr1 = np.array([4, 5, 3, 1])
Run Code Online (Sandbox Code Playgroud)

我想要返回数组:

array([2, 3, 1, 0])
Run Code Online (Sandbox Code Playgroud)

这样返回数组中的值表示数组的升序(即,返回数组中的值表示哪个是最大的).使用argsort,我只能告诉如何重新排序这些值:

arr1.argsort()
array([3, 2, 0, 1])
Run Code Online (Sandbox Code Playgroud)

如果不清楚,请告诉我.

Bi *_*ico 5

可能有更好的方法,但我总是这样做argsort().argsort():

>>> import numpy as np
>>> a = np.random.random(5)
>>> a
array([ 0.54254555,  0.4547267 ,  0.50008037,  0.20388227,  0.13725801])
>>> a.argsort().argsort()
array([4, 2, 3, 1, 0])
Run Code Online (Sandbox Code Playgroud)