Numpy入門: ソート

この記事では、PythonのライブラリであるNumpyを使用したソート(並び替え)について解説します。具体的なコード例も提供しますので、PythonとNumpyを使用したデータ処理に興味がある方はぜひ参考にしてください。

目次

  1. Numpyとは
  2. Numpyのsort関数
  3. argsort関数
  4. lexsort関数

Numpyとは

NumPy(Numerical Python)は、Python数値計算を効率的に行うための拡張モジュールです。多次元配列や行列の演算、さらにそれらを扱うための便利な関数が用意されています。


Numpyのsort関数

NumPyではnp.sort()関数を使って配列をソートすることができます。デフォルトでは昇順(小さい順)でソートされます。

import numpy as np

arr = np.array([2, 1, 5, 3, 7, 4, 6, 8])
sorted_arr = np.sort(arr)

print(sorted_arr) # 出力:[1 2 3 4 5 6 7 8]

argsort関数

np.argsort()関数は、ソート後の配列のインデックスを返します。これは元々どこに存在していた要素がどこに移動したか知りたい場合などに便利です。

import numpy as np

arr = np.array([2,1,5,3,7,4])
index_array = np.argsort(arr)

print(index_array) # 出力:[1,0,3,2,5,4]

lexsort関数

np.lexsort() 関数は複合ソート(レキシコグラフィカルオーダー) を行います。最初に最後から逆順でキー配列が使われます。

import numpy as np

first_name = ('Margery', 'Betsey', 'Shelley', 'Lanell', 'Genesis')
last_name = ('Woolum', 'Battle', 'Plotner', 'Brien', 'Stahl')
sort_key = np.lexsort((first_name, last_name))

print([last_name[i] + ", " + first_name[i] for i in sort_key])
# 出力:['Battle, Betsey', 'Brien, Lanell', 'Plotner, Shelley', 'Stahl, Genesis', 'Woolum, Margery']

以上がNumpyを使用したソートの説明となります。これらの基本操作を組み合わせることで、さまざまなデータ処理が可能になります。