配列の並べ替えは、データの並べ替えに役立ち、検索とクリーンアップが容易になるため、データ分析において非常に重要なステップです。
このチュートリアルでは、次のことを学びます NumPyで配列をソートする方法 。 NumPy で配列をソートできます。
- np.sort()関数の使用
- インラインソート
- さまざまな軸に沿って並べ替える
- np.argsort()関数の使用
- np.lexsort() 関数の使用
sort()関数の使用
sort() メソッドは、指定されたデータ構造 (ここでは配列) の要素をソートします。要素を並べ替えるには、配列オブジェクトを使用して sort 関数を呼び出します。
sort() メソッドを使用して配列をソートするには 2 つのケースがあります。
- NumPy 配列をその場でソートする
- NumPy 配列を軸に沿って並べ替える
これら両方の方法について、以下の例で説明します。
配列をインプレースで並べ替える
配列をその場で並べ替えるということは、元の配列要素を直接並べ替えることを意味します。
新しい配列のコピーは作成されないため、メモリ効率が非常に高くなります。
Javaの文字列形式
例
sort() メソッドを使用して、NumPy 配列内の要素をその場で並べ替えます。
Python3
# importing libraries> import> numpy as np> > a> => np.array([> 12> ,> 15> ,> 10> ,> 1> ])> print> (> 'Array before sorting'> ,a)> a.sort()> print> (> 'Array after sorting'> ,a)> |
>
>
出力:
Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15]>
配列を異なる軸に沿って並べ替える
このメソッドは、指定された NumPy 配列のソートされたコピーを作成します。
これは主に、特定の次元に沿って並べ替える場合に多次元配列で使用されます。
例
軸に沿った NumPy 配列の要素に対する sort() メソッドの使用
Python3
再帰Java
# importing libraries> import> numpy as np> # sort along the first axis> a> => np.array([[> 12> ,> 15> ], [> 10> ,> 1> ]])> arr1> => np.sort(a, axis> => 0> )> print> (> 'Along first axis :
'> , arr1)> # sort along the last axis> a> => np.array([[> 10> ,> 15> ], [> 12> ,> 1> ]])> arr2> => np.sort(a, axis> => -> 1> )> print> (> '
Along first axis :
'> , arr2)> a> => np.array([[> 12> ,> 15> ], [> 10> ,> 1> ]])> arr1> => np.sort(a, axis> => None> )> print> (> '
Along none axis :
'> , arr1)> |
>
>
出力:
Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15]>
argsort() の使用
argsort() メソッド これは、指定された軸に沿って NumPy 配列をソートする間接的な方法です。
返されるのは、 インデックスの配列 これにより、元の配列が昇順に並べ替えられます。
例
argsort() を使用して NumPy 配列内の要素を並べ替える
Python3
キャッチアンドトライJava
import> numpy as np> > # Numpy array created> a> => np.array([> 9> ,> 3> ,> 1> ,> 7> ,> 4> ,> 3> ,> 6> ])> > # unsorted array print> print> (> 'Original array:
'> , a)> > # Sort array indices> b> => np.argsort(a)> print> (> 'Sorted indices of original array->'> , b)> > # To get sorted array using sorted indices> # c is temp array created of same len as of b> c> => np.zeros(> len> (b), dtype> => int> )> for> i> in> range> (> 0> ,> len> (b)):> > c[i]> => a[b[i]]> print> (> 'Sorted array->'> , c)> |
>
>
出力:
Original array: [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] ソートされた配列-> [1 3 3 4 6 7 9]>>
一連のキーの使用
一連のキーを使用して配列を並べ替えると、複数の基準に基づいて配列を並べ替えることができます。
このメソッドは、np.lexsort() 関数とともに使用できます。 lexsort() 関数は、元の配列をソートするインデックスの配列を返します。
例
一連のキーを使用して安定したソートを取得します。
Python3
Javaの日付を文字列に変換する
import> numpy as np> > # Numpy array created> # First column> a> => np.array([> 9> ,> 3> ,> 1> ,> 3> ,> 4> ,> 3> ,> 6> ])> > # Second column> b> => np.array([> 4> ,> 6> ,> 9> ,> 2> ,> 1> ,> 8> ,> 7> ])> print> (> 'column a, column b'> )> for> (i, j)> in> zip> (a, b):> > print> (i,> ' '> , j)> > # Sort by a then by b> ind> => np.lexsort((b, a))> print> (> 'Sorted indices->'> , ind)> |
>
>
出力:
column a, column b 9 4 3 6 1 9 3 2 4 1 3 8 6 7 Sorted indices->[2 3 1 5 4 6 0]>>
以下もチェックしてください: NumPy での並べ替え、検索、カウント
結論
NumPy 配列をソートすると、重複要素、最大要素、最小要素を簡単に見つけることができます。これはデータ操作に不可欠な操作であり、データの操作を容易にします。
このチュートリアルでは、NumPy で配列をソートする 3 つの方法、つまりsort()、argsort()、lexsort()を取り上げました。これらすべてのメソッドは、NumPy で ndarray をソートするためのさまざまな機能を提供します。このトピックを完全に理解できるように、例を示して簡単な言葉で方法を説明しました。