logo

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

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

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