NumPy numpy.sort的使用

NumPy numpy.sort的使用

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

NumPy numpy.sort的使用

语法

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’ 的值。

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程