Python NumPy numpy.sort() 函数

Minahil Noor 2023年1月30日 2020年11月7日
  1. numpy.sort() 语法
  2. 示例代码:numpy.sort()
  3. 示例代码:numpy.sort() 对一个多维数组进行排序
  4. 示例代码: numpy.sort() 沿着指定的轴对多维数组排序
  5. 示例代码:numpy.sort() 对不同类型的数组进行排序
Python NumPy numpy.sort() 函数

Python NumPy numpy.sort() 函数对任意数据类型的 N 维数组进行排序。默认情况下,该函数以升序对数组进行排序。

numpy.sort() 语法

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

参数

a 它是一个类似数组的结构。它是要排序的输入数组。
axis 它是一个整数。它代表函数对数组进行排序的轴。它的默认值是-1,意味着函数将沿着最后一个轴,即升序对数组进行排序。如果是 None,函数将在排序前把多维的数组转换为一维。如果是 0,函数将沿着第一个轴,即降序对数组进行排序。
kind 它是一个字符串。它代表排序算法的名称。这个函数接受的排序算法名称是 quicksortmergesortheapsortstable。要阅读更多关于这些排序算法的时间复杂性,请点击这里
order 它是一个字符串或一个字符串列表。当定义了数组的字段时,这个参数用来指定要先比较的字段。

返回值

它返回一个与输入的数组类型和形状相同的排序数组。

示例代码:numpy.sort()

参数 a 是必须的。如果我们在一维的数组上执行这个函数,它将产生以下输出。

import numpy as np 
   
a = np.array([89, 34, 56, 87, 90, 23, 45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78]) 

sorted_array = np.sort(a) 
print('The sorted array is:')
print(sorted_array) 

输出:

The sorted array is:
[2 9 11 12 12 23 28 34 34 45 56 65 65 78 78 78 82 87 89 90]

它返回了一个按升序排序的数组。

示例代码:numpy.sort() 对一个多维数组进行排序

现在我们将传递一个多维的数组。

import numpy as np 
   
a = np.array([[11, 12, 5], [15, 6,10], [10, 8, 12], [12,15,8], [34, 78, 90]]) 

sorted_array = np.sort(a) 
print('The sorted array is:')
print(sorted_array) 

输出:

The sorted array is:
[[ 5 11 12]
 [ 6 10 15]
 [ 8 10 12]
 [ 8 12 15]
 [34 78 90]]

函数对数组进行了升序排序,即沿最后一个轴排序,因为 axis 的默认值为 -1。

示例代码: numpy.sort() 沿着指定的轴对多维数组排序

我们将 axis 参数的值设置为 None

import numpy as np 
   
a = np.array([[11, 12, 5], [15, 6,10], [10, 8, 12], [12,15,8], [34, 78, 90]]) 

sorted_array = np.sort(a, axis= None) 
print('The sorted array is:')
print(sorted_array) 

输出:

The sorted array is:
[5 6 8 8 10 10 11 12 12 12 15 15 34 78 90]

请注意,函数首先将数组转换为一维数组,然后对其进行排序。

现在,我们将沿着第一个轴对数组进行排序。

import numpy as np 
   
a = np.array([[11, 12, 5], [15, 6,10], [10, 8, 12], [12,15,8]]) 

sorted_array = np.sort(a, axis= 0) 
print('The sorted array is:')
print(sorted_array) 

输出:

The sorted array is:
[[10  6  5]
 [11  8  8]
 [12 12 10]
 [15 15 12]]

函数沿第一轴对数组进行了排序,即降序排序。

示例代码:numpy.sort() 对不同类型的数组进行排序

我们可以使用这个函数对不同数据类型的数组进行排序,比如一个字符串数组、一个布尔值数组等。

import numpy as np 
   
a = np.array([['z', 'x'], ['b', 'a'], ['g', 'l'], ['k', 'd']]) 

sorted_array = np.sort(a) 
print('The sorted array is:')
print(sorted_array) 

输出:

The sorted array is:
[['x' 'z']
 ['a' 'b']
 ['g' 'l']
 ['d' 'k']]

注意,它已经按照字母顺序递增的方式对数组进行了排序。现在,我们将传递一个布尔值数组。

import numpy as np 
   
a = np.array([[True, False, True], [False, False, True], [False, True, True]]) 

sorted_array = np.sort(a) 
print('The sorted array is:')
print(sorted_array) 

输出:

The sorted array is:
[[False  True  True]
 [False False  True]
 [False  True  True]]