Numpyで配列からランキングを得る方法
PythonでNumpyを用いて配列の値のランキングを得る方法について
例えば[3, 3, 2, 4, 1]のような配列から[2, 3, 1, 4, 0]のような配列を得る。
結果の配列には、元の配列の対応する位置の値のランキング値が入っている
同じ値があった場合も、ユニークなランキング値を振ってほしい
方法1
code:1.py
def get_ranking1(array):
n = len(array)
r = np.zeros(n, dtype=np.int)
rarray.argsort() = np.arange(n)
return r
方法2
code:2.py
def get_ranking2(array):
return np.arange(len(array))array.argsort().argsort()