赞
踩
numpy.sort()
调用方法:
numpy.sort(a, axis=-1, kind=None, order=None)
各个参数意义:
a
:被排序的数组对象
axis
:选择按照哪一个坐标轴进行排序,如果设定为None
值,就会先对被排序数组进行扁平化,再进行排序。如果不进行值的而设定,那么默认值为-1
,即沿着最后一个坐标轴进行排序。
kind
:四种sort算法可以被选择,如{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’
},默认算法为‘quicksort’。
order`:字符串或者字符串列表。如果为字符串,则表示对选择类别进行排序。若为字符串列表,则表示先对第一个字符类别进行排序,再对第二个字符类别进行排序。
有返回值,返回一个复制的排列好顺序的数组。
代码如下:
# -*- 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
的时候,会先对被排序的数组初始化,然后再进行排序操作,最终我们获得了一个一维排好序的数组。
# -*- 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()
参数完全一致,只是二者在调用方式上存在差异,numpy.ndarray.sort()
函数调用方式如下:
ndarray.sort(axis=-1, kind=None, order=None)
例如:
array = np.array([[1,4], [3,1]])
array.sort(axis=1)
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。