NumPy 配列の並べ替え | NumPy配列をソートする方法

配列の並べ替えは、データの並べ替えに役立ち、検索とクリーンアップが容易になるため、データ分析において非常に重要なステップです。

このチュートリアルでは、次のことを学びます NumPyで配列をソートする方法 。 NumPy で配列をソートできます。

  • np.sort()関数の使用
    • インラインソート
    • さまざまな軸に沿って並べ替える
  • np.argsort()関数の使用
  • np.lexsort() 関数の使用

sort()関数の使用

sort() メソッドは、指定されたデータ構造 (ここでは配列) の要素をソートします。要素を並べ替えるには、配列オブジェクトを使用して sort 関数を呼び出します。

sort() メソッドを使用して配列をソートするには 2 つのケースがあります。

  • NumPy 配列をその場でソートする
  • NumPy 配列を軸に沿って並べ替える

これら両方の方法について、以下の例で説明します。

配列をインプレースで並べ替える

配列をその場で並べ替えるということは、元の配列要素を直接並べ替えることを意味します。

新しい配列のコピーは作成されないため、メモリ効率が非常に高くなります。

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




# 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




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




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 をソートするためのさまざまな機能を提供します。このトピックを完全に理解できるように、例を示して簡単な言葉で方法を説明しました。