NumPy の列で配列を並べ替える
このチュートリアルでは、NumPy の列で配列を並べ替える方法を紹介します。
numpy.sort()
関数を使用した NumPy の列による配列の並べ替え
2D NumPy 配列があり、特定の列内の要素の順序に従って行を並べ替えたいとします。これは、numpy.sort()
関数を使用して実行できます。numpy.sort()
関数は NumPy 配列をソートします。numpy.sort()
関数の order
および axis
パラメーターで列インデックスと軸を指定できます。numpy.sort()
関数を使用するには、配列をフィールド付きの構造化配列に変換する必要があります。これを行うには、numpy.view()
関数を使用できます。次のコード例を参照してください。
import numpy as np
array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)
array.view("i8,i8,i8").sort(order=["f1"], axis=0)
print("Array after sorting\n", array)
出力:
Array before sorting
[[1 1 2]
[0 0 1]
[1 1 3]]
Array after sorting
[[0 0 1]
[1 1 2]
[1 1 3]]
最初に、np.array()
関数を使用して 2DNumPy 配列 array
を作成しました。次に、array.view()
関数を使用して、配列
を構造化配列に変換しました。その後、sort(order=['f1'], axis=0)
関数を使用して、配列を 2 番目の列で並べ替えました。ここで、f1
は 2 番目の列を指します。
numpy.argsort()
関数を使用した NumPy の列による配列の並べ替え
前のアプローチとまったく同じことを行うもう 1つの簡単な方法は、numpy.argsort()
関数を使用することです。numpy.argsort()
関数は、配列の要素を並べ替えるためにも使用されます。これは前のアプローチと非常に似ていますが、このアプローチを機能させるために numpy.view()
関数を使用する必要はありません。numpy.argsort()
関数は、配列の並べ替えに使用されるインデックスを返します。次のコード例を参照してください。
import numpy as np
array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)
array[array[:, 1].argsort()]
print("Array after sorting\n", array)
出力:
Array before sorting
[[1 1 2]
[0 0 1]
[1 1 3]]
Array after sorting
[[0 0 1]
[1 1 2]
[1 1 3]]
最初に、np.array()
関数を使用して 2DNumPy 配列 array
を作成しました。次に、配列スライスを使用して array
の 2 番目の列のみを指定し、np.argsort()
関数で並べ替えました。np.argsort()
関数によって返されるインデックスを使用して、array
を並べ替えました。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn