配列に対して,各要素のrankingを求めたいとします.
ただし,引き分けがあった場合は,同順位として,次の順位は前の順位+1から再開するものとします.
例えば,[1,1,2,2,3]
という配列の順位は[0,0,1,1,2]
というように得たいものとします.
そのような計算は実はnp.unique
で得ることができます.
import numpy as np
A = [1, 1, 2, 2, 3]
_, ranks = np.unique(A, return_inverse=True)
print(ranks)
>>> [0, 0, 1, 1, 2]