argsortで毎回悩む

http://sohatach.hatenablog.jp/entry/2014/10/04/173309
大体ここらへんを見直しているが、度々分からなくなるのでまとめる

argsort()が返すのは、「その配列を昇順にソートした時の配列を元の配列のindexを使って表現したもの」なので、

a = np.array([3, 1, 2])
b = np.argsort(a)
array([1, 2, 0])

とした時に、ソートされた配列のi番目の要素を取り出すには

a[b[i]]

とする必要がある(bはindexを示す配列であるため)

たまに「配列においてこの数字mは何番目に来るんだろう」ということを調べるためにargsortを使うことがあるが、その時は

len(a) - int(np.where(np.argsort(a) == m)[0])

などとしている