Pythonで配列の要素を昇順で並び替える方法です。
使用するのはPythonのnumpyライブラリのsort、argsort関数です。
import numpy as np
このような配列を使用します。
a = np.array([20, 30, 50, 60, 10, 40])
a
まず、sort関数を使用して、配列の要素を昇順で並び替えてみましょう。
引数に並び替えたい配列を指定します。
実行します。
np.sort(a)
昇順で並び替えることができました。
次に、argsort関数を使用して、昇順で並び替えた要素が元の配列の何番目だったかを取得してみましょう。
引数に取得したい配列を指定します。
実行します。
np.argsort(a)
10は元の配列aの4番目、20は元の配列aの0番目、ということがわかります。
今度はこのような2次元配列を使用します。
b = np.array([[10, 2, 30, 4], [1, 20, 3, 40]])
b
sort関数の引数axisに0を指定すると、列ごとに昇順で並び替えることができます。
実行します。
np.sort(b, axis=0)
列ごとに昇順で並び替えることができました。
引数axisに1を指定すると、行ごとに昇順で並び替えることができます。
実行します。
np.sort(b, axis=1)
行ごとに昇順で並び替えることができました。
さらに、引数axisにNoneを指定すると、多次元配列を1次元配列に変換して昇順で並び替えることができます。
実行します。
np.sort(b, axis=None)
1次元配列に変換して昇順で並び替えることができました。
関連メソッド
【毎日Python】Pythonのリストを並び替える方法|sort