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)
如果不清楚,请告诉我.
可能有更好的方法,但我总是这样做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)