Python 中的 numpy.sort

2025年3月17日 | 阅读 3 分钟

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

numpy-sort

语法

参数

x: array_like

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

axis:int 或 None(可选)

此参数定义了执行排序的轴。如果此参数为 None,则在排序之前将数组展平,并且默认情况下,此参数设置为 -1,该参数沿最后一个轴对数组进行排序。

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

此参数用于定义排序算法,并且默认情况下,排序使用 'quicksort' 执行。

order:str 或 str 列表(可选)

定义带字段的数组时,其顺序定义了用于进行比较的字段,例如第一个、第二个等。只能将单个字段指定为字符串,而不必指定所有字段。但是,未指定的字段仍将按其在 dtype 中出现的顺序使用,以打破平局。

返回值

此函数返回源数组的已排序副本,该副本将具有与源数组相同的形状和类型。

示例 1

输出

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

输出

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

输出

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

输出

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 和值来创建了一个结构化数组 'x'
  • 我们声明了变量 'y''z',并分配了 np.sort() 函数的返回值。
  • 我们在函数中传递了输入数组 'x' 和 order。
  • 最后,我们尝试打印 'y' 和 'z' 的值。

在输出中,它显示了一个已排序的结构化数组副本,并定义了顺序。


下一主题numpy.average()