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)
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~