numpy.sortとnumpy.argsortはどちらもNumpyのライブラリ関数ですが、使用する目的が異なります。
本記事ではnumpy.sortとnumpy.argsortの違いを例題を使って、解説します。
目次
numpy.sort
numpy.sortは、配列そのものをソートして新しい配列を返しますが、元の配列は変更されません。
以下のように使用します。
以下のように使用します。
import numpy as np
array = np.array([10, 2, 9, -1])
sorted_array = np.sort(array)
print('元の配列:', array)
print('ソートされた配列:', sorted_array)
出力
元の配列: [10 2 -1]
ソートされた配列: [-1 2 9 10]
numpy.sortを使って、配列を昇順に並べ替えていますが、元の配列(array)は変更をされず、
変更後の配列(sorted_array)のみ変更されていことが分かります。
numpy.argsort
numpy.argsortは、配列の要素をソートするためのインデックスを返します。
numpy.sortと同様に元の配列は変更されませんが、numpy.argsortの場合は返されたインデックスを使用して配列をソートすることができます。
以下のように使用します。
入力
import numpy as np
array = np.array([10, 2, 9, -1])
sorted_indices = np.argsort(array)
print('元の配列:', array)
print('ソートされた配列のインデックス:', sorted_indices)
print('ソートされた配列:', array[sorted_indices])
出力
元の配列: [10 2 9 -1]
ソートされた配列のインデックス: [3 1 2 0]
ソートされた配列: [-1 2 9 10]
まとめ
numpy.sortを使用すると、元配列を並べ替えた結果を直接配列で返す
numpy.argsortを使用すると、元配列を並べ替えた結果のインデックスを返す
コメント