pythonでリスト内の値のn番目に大きい値、小さい値を知りたかったのですが、
見つけた記事が求めるものと少し違ったので、自分なりにこうじゃないかって部分を含めてかんたんにまとめました。
まず、元の記事と同様に以下のようなリストがあったとします。
a=[1,5,4,3,2]
昇順
このリストの小さい順(昇順)のインデックスを取得する場合は
>>> A=np.array(a)
>>> A.argsort()
array([0, 4, 3, 2, 1])
となる。
降順
次に、大きい順(降順)のインデックスを取得する場合は
>>> A=np.array(a)
>>> len(A)-1-A.argsort()
array([4, 0, 1, 2, 3])
もとの記事は降順をスライスをつかって実装していたのだが、自分の求める仕様と少し違ったのでこっちのやり方もあるよ、という感じでやってみました。