アプリ版:「スタンプのみでお礼する」機能のリリースについて

Pythonのプログラムを学んでいます。
numpyを使用してリストをつくり、その後sortして要素を取り出しました。取り出した番号のsortする前の要素番号を得るには、どうするべきでしょうか?今のところ、プログラムはこんな感じです。
r = np.sqrt(np.sum((He2[:, 0:3] - a[0:3])**2, axis=1))
r2 = np.sort(r)
print(r2[1])
r2[1]のrだった時の要素番号が得たいです。
ご教授願います。

A 回答 (1件)

そういうときはnp.sortでなくnp.argsortを使う。


これの返値はソート列ではなく、ソート結果の元の配列でのインデックス列になる。
i=np.argsort(r)
r2=r[i]
とすればr2は質問のものと同じ。iにrのインデックス列(0始まり)が入る。
    • good
    • 1
この回答へのお礼

ありがとうございます!

お礼日時:2020/02/21 16:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!