在某些情况下,我们需要对数组进行排序以进行计算。为此,Python的numpy模块提供了一个名为numpy.sort()的函数。这个函数会给出源数组或输入数组的一个排序副本。

1.png

语法:

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

参数:

x: array_like

这个参数定义了要排序的源数组。

axis: int或None(可选)

这个参数定义了沿着哪个轴进行排序。如果这个参数是None,则在排序之前会将数组扁平化,而默认情况下,这个参数设置为-1,表示沿着最后一个轴对数组进行排序。

kind: {quicksort, heapsort, mergesort}(可选)

这个参数用于定义排序算法,默认情况下使用'quicksort'进行排序。

order: str或str列表(可选)

当一个数组被定义为具有字段时,它的顺序定义了第一个、第二个等用于比较的字段。只能将单个字段指定为字符串,不一定要为所有字段指定。然而,未指定的字段仍将按照它们在dtype中出现的顺序用于解决平局。

返回值:

这个函数返回源数组的排序副本,其形状和类型与源数组相同。

示例1:

import numpy as np  
x=np.array([[1,4,2,3],[9,13,61,1],[43,24,88,22]])  
x  
y=np.sort(x)  
y  

输出:

array([[ 1,  4,  2,  3],
       [ 9, 13, 61,  1],
       [43, 24, 88, 22]])
array([[ 1,  2,  3,  4],
       [ 1,  9, 13, 61],
       [22, 24, 43, 88]])

在上面的代码中:

  • 我们导入了别名为np的numpy。
  • 我们使用np.array()函数创建了一个多维数组'x'
  • 我们声明了变量'y',并将np.sort()函数的返回值赋值给它。
  • 我们在函数中传递了输入数组'x'
  • 最后,我们尝试打印'y'的值。

输出中显示了一个与源数组类型和形状相同的排序副本。

示例2:

import numpy as np  
x=np.array([[1,4,2,3],[9,13,61,1],[43,24,88,22]])  
x  
y=np.sort(x, axis=None)  
y  

输出:

array([[ 1,  4,  2,  3],
           [ 9, 13, 61,  1],
           [43, 24, 88, 22]])
array([ 1,  1,  2,  3,  4,  9, 13, 22, 24, 43, 61, 88])

示例3:

import numpy as np  
x=np.array([[1,4,2,3],[9,13,61,1],[43,24,88,22]])  
x  
y=np.sort(x,axis=0)  
y  
z=np.sort(x,axis=1)  
z  

输出:

array([[ 1,  4,  2,  1],
           [ 9, 13, 61,  3],
           [43, 24, 88, 22]])
array([[ 1,  2,  3,  4],
           [ 1,  9, 13, 61],
           [22, 24, 43, 88]])

示例4:

import numpy as np  
dtype = [('name', 'S10'), ('height', float), ('age', int),('gender','S10')]  
values = [('Shubham', 5.9, 23, 'M'), ('Arpita', 5.6, 23, 'F'),('Vaishali', 5.2, 30, 'F')]  
x=np.array(values, dtype=dtype)  
x  
y=np.sort(x, order='age')  
y  
z=np.sort(x, order=['age','height'])  
z  

输出:

array([('Shubham', 5.9, 23, 'M'), ('Arpita', 5.6, 23, 'F'), ('Vaishali', 5.2, 30, 'F')],dtype=[('name', 'S10'), ('height', '<f8'), ('age', '<i4'), ('gender', 'S10')]) 
array([('Arpita', 5.6, 23, 'F'), ('Shubham', 5.9, 23, 'M'), ('Vaishali', 5.2, 30, 'F')], dtype=[('name', 'S10'), ('height', '<f8'), ('age', '<i4'), ('gender', 'S10')])
array([('Arpita', 5.6, 23, 'F'), ('Shubham', 5.9, 23, 'M'), ('Vaishali', 5.2, 30, 'F')], dtype=[('name', 'S10'), ('height', '<f8'), ('age', '<i4'), ('gender', 'S10')])

在上面的代码中:

  • 我们导入了别名为np的numpy。
  • 我们定义了结构化数组的字段和值。
  • 我们通过在np.array()函数中传递dtype和values来创建了一个结构化数组'x'
  • 我们声明了变量'y''z',并将np.sort()函数的返回值赋值给它们。
  • 我们在函数中传递了输入数组'x'和order。
  • 最后,我们尝试打印'y''z'的值。

输出中显示了一个按照指定顺序排序的结构化数组的副本。

标签: NumPy, NumPy教程, NumPy学习, NumPy安装, NumPy入门教程, NumPy进阶教程, NumPy指南, NumPy学习指南, NumPy库, NumPy库学习, NumPy库入门, NumPy库教程, NumPy应用, NumPy库进阶