配列の並べ替えは、データの並べ替えに役立ち、検索とクリーンアップが容易になるため、データ分析において非常に重要なステップです。
このチュートリアルでは、次のことを学びます 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 をソートするためのさまざまな機能を提供します。このトピックを完全に理解できるように、例を示して簡単な言葉で方法を説明しました。