Python NumPy numpy.sort() 関数

Minahil Noor 2023年1月30日
  1. numpy.sort() の構文
  2. コード例:numpy.sort()
  3. コード例:numpy.sort() で多次元配列をソートする
  4. コード例:numpy.sort() で多次元配列を指定した軸に沿ってソートする
  5. コード例:numpy.sort() で異なる型の配列をソートする
Python NumPy numpy.sort() 関数

Python NumPy numpy.sort() 関数は任意のデータ型の N 次元の配列をソートします。この関数はデフォルトでは昇順に配列をソートします。

numpy.sort() の構文

numpy.sort(a, axis=-1, kind=None, order=None)

パラメータ

a 配列のような構造体です。これはソートするための入力配列です。
axis 整数です。この関数が配列をソートする軸を表します。デフォルト値は -1 で、この関数は配列を最後の軸に沿って、つまり昇順にソートします。これが None の場合、この関数は多次元配列を 1 次元に変換してからソートします。これが 0 の場合、この関数は配列を最初の軸に沿って、つまり降順にソートします。
kind 文字列です。これはソートアルゴリズムの名前を表します。この関数が受け付けるソートアルゴリズム名は quicksortmergesortheapsortstable です。これらのソートアルゴリズムの時間的な複雑さについては、こちらをクリックしてください。
order 文字列または文字列のリストです。配列のフィールドが定義されている場合、このパラメータを用いて最初に比較するフィールドを指定します。

戻り値

入力配列と同じ型と形状のソートされた配列を返します。

コード例:numpy.sort()

パラメータ a は必須です。この関数を 1 次元配列で実行すると、以下のような出力が得られます。

import numpy as np

a = np.array(
    [89, 34, 56, 87, 90, 23, 45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78]
)

sorted_array = np.sort(a)
print("The sorted array is:")
print(sorted_array)

出力:

The sorted array is:
[2 9 11 12 12 23 28 34 34 45 56 65 65 78 78 78 82 87 89 90]

昇順にソートされた配列を返しました。

コード例:numpy.sort() で多次元配列をソートする

これから多次元配列を渡します。

import numpy as np

a = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8], [34, 78, 90]])

sorted_array = np.sort(a)
print("The sorted array is:")
print(sorted_array)

出力:

The sorted array is:
[[ 5 11 12]
 [ 6 10 15]
 [ 8 10 12]
 [ 8 12 15]
 [34 78 90]]

この関数は配列を昇順、つまり axis= -1 のデフォルト値として最後の軸に沿ってソートします。

コード例:numpy.sort() で多次元配列を指定した軸に沿ってソートする

パラメータ axis の値を None に設定します。

import numpy as np

a = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8], [34, 78, 90]])

sorted_array = np.sort(a, axis=None)
print("The sorted array is:")
print(sorted_array)

出力:

The sorted array is:
[5 6 8 8 10 10 11 12 12 12 15 15 34 78 90]

この関数は、まず配列を 1 次元配列に変換してからソートしていることに注意してください。

次に、最初の軸に沿って配列を並べ替えます。

import numpy as np

a = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8]])

sorted_array = np.sort(a, axis=0)
print("The sorted array is:")
print(sorted_array)

出力:

The sorted array is:
[[10  6  5]
 [11  8  8]
 [12 12 10]
 [15 15 12]]

この関数は配列を最初の軸に沿って、つまり降順にソートしています。

コード例:numpy.sort() で異なる型の配列をソートする

この関数を使用して、文字列の配列やブール値の配列など、異なるデータ型の配列をソートすることができます。

import numpy as np

a = np.array([["z", "x"], ["b", "a"], ["g", "l"], ["k", "d"]])

sorted_array = np.sort(a)
print("The sorted array is:")
print(sorted_array)

出力:

The sorted array is:
[['x' 'z']
 ['a' 'b']
 ['g' 'l']
 ['d' 'k']]

アルファベット順に配列をソートしていることに注意してください。次に、ブール値の配列を渡します。

import numpy as np

a = np.array([[True, False, True], [False, False, True], [False, True, True]])

sorted_array = np.sort(a)
print("The sorted array is:")
print(sorted_array)

出力:

The sorted array is:
[[False  True  True]
 [False False  True]
 [False  True  True]]