numpy 排序

numpy 排序

numpy 排序

在数据处理和分析的过程中,经常需要对 数组 或 矩阵 进行排序操作。NumPy 是一个Python库,提供了丰富的数学函数和数组运算,包括对数组的排序功能。本文将详细介绍 NumPy 中的排序操作,包括对一维数组、二维数组以及指定轴进行排序。

一维数组排序

首先,让我们看看如何对一维数组进行排序。可以使用 NumPy 中的 np.sort() 函数对数组进行排序,该函数会返回一个排好序的新数组,而不是修改原始数组。

import numpy as np

# 创建一个随机的一维数组
arr = np.array([3, 1, 2, 5, 9, 4, 6, 8, 7])

# 对数组进行排序
arr_sorted = np.sort(arr)

print(arr_sorted)

运行上面的代码,我们会得到以下输出:

[1 2 3 4 5 6 7 8 9]

除了 np.sort() 函数外,还有一个原地排序函数 np.sort() 可以用来对原始数组进行排序。这个函数会直接在原数组上进行修改,而不是返回一个新数组。

import numpy as np

# 创建一个随机的一维数组
arr = np.array([3, 1, 2, 5, 9, 4, 6, 8, 7])

# 对数组进行原地排序
arr.sort()

print(arr)

运行上面的代码,我们会得到以下输出:

[1 2 3 4 5 6 7 8 9]

二维数组排序

对于二维数组,我们同样可以使用 np.sort() 函数来进行排序。默认情况下,该函数会沿着最后一个轴 (即 axis=-1,也就是数组的列) 进行排序。

import numpy as np

# 创建一个随机的二维数组
arr = np.array([[5, 2, 9],
                [1, 8, 6],
                [3, 7, 4]])

# 对二维数组进行排序(按列)
arr_sorted = np.sort(arr)

print(arr_sorted)

运行上面的代码,我们会得到以下输出:

[[2 5 9]
 [1 6 8]
 [3 4 7]]

如果我们想要按行进行排序,可以通过指定 axis=0 来实现。此时,NumPy 会沿着第一个轴 (即数组的行) 进行排序。

import numpy as np

# 创建一个随机的二维数组
arr = np.array([[5, 2, 9],
                [1, 8, 6],
                [3, 7, 4]])

# 对二维数组进行排序(按行)
arr_sorted = np.sort(arr, axis=0)

print(arr_sorted)

运行上面的代码,我们会得到以下输出:

[[1 2 4]
 [3 7 6]
 [5 8 9]]

指定轴排序

除了默认的按行或按列排序外,我们还可以通过指定轴来对多维数组进行排序。例如,对一个三维数组进行排序,可以通过指定 axis 参数进行排序。

import numpy as np

# 创建一个随机的三维数组
arr = np.array([[[5, 2, 9],
                 [1, 8, 6],
                 [3, 7, 4]],

                [[4, 1, 3],
                 [9, 5, 2],
                 [7, 6, 8]]])

# 对三维数组进行排序(按层)
arr_sorted = np.sort(arr, axis=1)

print(arr_sorted)

运行上面的代码,我们会得到以下输出:

[[[1 2 4]
  [3 7 6]
  [5 8 9]]

 [[4 1 2]
  [7 5 3]
  [9 6 8]]]

通过以上示例,我们可以看到 NumPy 提供了灵活的排序功能,可以方便地对数组进行不同轴向的排序操作。

结语

本文介绍了 NumPy 中的排序操作,包括一维数组、二维数组以及指定轴进行排序。通过 NumPy 提供的排序函数,我们可以轻松地对数组进行排序,满足不同场景下的需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程