numpy.sort()およびnumpy.ndarray.sort()関数数

numpy.sort()メソッドの呼び出し:

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

各パラメータの意味:
aソートする配列オブジェクトソート
axisする座標軸を選択します。None値に設定すると、ソートされた配列が最初に平坦化されてからソートされます。値を設定しない場合、デフォルト値-1は最後の座標軸に沿ってソートされます。
kind:{ }などの4つのソートアルゴリズムを選択でき ます。デフォルトのアルゴリズムはorder`:文字列または文字列リストです。文字列の場合は、選択したカテゴリを並べ替えることを意味します。文字列リストの場合は、最初の文字カテゴリを最初に並べ替えてから、2番目の文字カテゴリを並べ替えることを意味します。コピーされた配列を順番に返す戻り値があります。コードは次のように表示されます。 ‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’‘quicksort’。

# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np


class Debug:
    @staticmethod
    def mainProgram():
        array = np.array([[1, 3], [2, 4]])
        array_ = np.sort(array, axis=None)
        print("array_的值为:")
        print(array_)


if __name__ == "__main__":
    main = Debug()
    main.mainProgram()
"""
array_的值为:
[1 2 3 4]
"""

設定axis=Noneすると、最初にソートされた配列を初期化し、次にソート操作を実行し、最後に1次元のソートされた配列を取得することがわかります。

# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np


class Debug:
    @staticmethod
    def mainProgram():
        array = np.array([[3, 1], [4, 2]])
        array_ = np.sort(array)
        array_1 = np.sort(array, axis=-1)
        print("array_的值为:")
        print(array_)
        print("array_1的值为:")
        print(array_1)


if __name__ == "__main__":
    main = Debug()
    main.mainProgram()
"""
array_的值为:
[[1 3]
 [2 4]]
array_1的值为:
[[1 3]
 [2 4]]
"""

axisパラメータを設定しない場合、得られた結果は設定したaxis=-1結果一致していることがわかります。

# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np


class Debug:
    @staticmethod
    def mainProgram():
        dtype = [('name', 'S10'), ('height', float), ('age', int)]
        values = [('Arthur', 1.8, 41), ('Lancelot', 1.9, 38),
                  ('Galahad', 1.7, 38)]
        # 创建一个结构数组
        array = np.array(values, dtype=dtype)
        array_ = np.sort(array, order='height')
        print("创建好的结构数组array的值为:")
        print(array)
        print("array_的值为:")
        print(array_)


if __name__ == "__main__":
    main = Debug()
    main.mainProgram()
"""
创建好的结构数组array的值为:
[(b'Arthur', 1.8, 41) (b'Lancelot', 1.9, 38) (b'Galahad', 1.7, 38)]
array_的值为:
[(b'Galahad', 1.7, 38) (b'Arthur', 1.8, 41) (b'Lancelot', 1.9, 38)]
"""

order文字列を指定すると、この文字列で表されるオブジェクトを並べ替えることを意味することがわかります。つまり、高さでheight並べ替えられます。

配列の要素を大きいものから小さいものに配置する方法は次のとおりです。

# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np


class Debug:
    @staticmethod
    def mainProgram():
        array = np.array([[1, 3], [2, 4]])
        array_ = abs(np.sort(-array, axis=None))
        print("array_的值为:")
        print(array_)


if __name__ == "__main__":
    main = Debug()
    main.mainProgram()
"""
array_的值为:
[4 3 2 1]
"""

上記の結果から、アレイ要素が大きいものから小さいものへと正常に配置されていることがわかります。

numpy.ndarray.sort()関数とnumpy.sort()パラメーターはまったく同じですが、2つの呼び出し方法に違いがあり、numpy.ndarray.sort()関数の呼び出し方法は次のとおりです。

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

例えば:

array = np.array([[1,4], [3,1]])
array.sort(axis=1)

コードワードは簡単ではありません。役に立つと思ったら、手を挙げて「いいね」を付けて、もっと多くの人に見てもらいましょう〜

おすすめ

転載: blog.csdn.net/u011699626/article/details/112057536