mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12mobile wallpaper 13mobile wallpaper 14mobile wallpaper 15mobile wallpaper 16mobile wallpaper 17mobile wallpaper 18mobile wallpaper 19mobile wallpaper 20mobile wallpaper 21mobile wallpaper 22mobile wallpaper 23
610 字
2 分钟
笔记|数据分析学习笔记11|排序函数

本系列所有文章都放在数据科学标签,总目录如下:

合集|数据分析学习笔记|系列总目录

上一篇:笔记|数据分析学习笔记10|比较函数


11.1 排序函数概述#

在数据分析中,排序和去重是数据预处理的基本操作。NumPy 提供了高效的排序函数,下表列出了本节涉及的主要函数:

函数功能
np.sort(x)返回排序后的新数组(原数组不变)
x.sort()原地排序,直接修改原数组
np.argsort(x)返回排序后各元素在原数组中的索引
np.lexsort(keys)根据多个键进行间接排序
np.unique(x)返回去重并排序后的唯一值
np.in1d(a, b)检查 a 中的元素是否存在于 b 中

11.2 np.sort() 与 arr.sort()#

np.sort() 返回排序后的新数组,原数组保持不变;arr.sort() 是数组的方法,会原地修改原数组。

import numpy as np
np.random.seed(0)
arr = np.random.randint(1, 100, 20)
print(arr)

输出:

[45 48 65 68 68 10 84 22 37 88 71 89 89 13 59 66 40 88 47 89]
# np.sort() 返回新数组,原数组不变
print(np.sort(arr))
print(arr) # 原数组不变

输出:

[10 13 22 37 40 45 47 48 59 65 66 68 68 71 84 88 88 89 89 89]
[45 48 65 68 68 10 84 22 37 88 71 89 89 13 59 66 40 88 47 89]
# arr.sort() 原地排序,修改原数组
arr.sort()
print(arr) # 原数组已被修改

输出:

[10 13 22 37 40 45 47 48 59 65 66 68 68 71 84 88 88 89 89 89]

选择建议:

  • 需要保留原始数据顺序时,使用 np.sort()
  • 不需要保留原始数据且希望节省内存时,使用 arr.sort()

11.3 np.argsort()#

np.argsort() 不返回排序后的值,而是返回排序后各元素在原数组中的索引位置。这在需要按一个数组的顺序排列另一个数组时非常有用。

np.random.seed(0)
arr = np.random.randint(1, 100, 20)
print(arr)
print(np.argsort(arr))

输出:

[45 48 65 68 68 10 84 22 37 88 71 89 89 13 59 66 40 88 47 89]
[ 5 13 7 8 16 0 18 1 14 2 15 3 4 10 6 17 9 11 12 19]

结果解读:

  • argsort 返回值的第一个元素是 5,表示排序后最小的元素(10)在原数组的索引 5 位置。
  • 验证:arr[5] = 10,确实是最小值。
  • arr[argsort] 等价于 np.sort(arr)

11.4 np.unique() 去重#

np.unique() 返回数组中去重并排序后的唯一值。

np.random.seed(0)
arr = np.random.randint(1, 100, 20)
print(arr)
print(np.unique(arr))

输出:

[45 48 65 68 68 10 84 22 37 88 71 89 89 13 59 66 40 88 47 89]
[10 13 22 37 40 45 47 48 59 65 66 68 71 84 88 89]

原始数组有 20 个元素,去重后剩下 16 个唯一值,且默认按升序排列。在数据分析中,np.unique() 常用于统计类别、去除重复样本等场景。


11.5 本节小结#

本节完成了以下内容:

  • 掌握了 np.sort()(返回新数组)与 arr.sort()(原地排序)的区别与适用场景。
  • 掌握了 np.argsort() 返回排序索引的用法及其解读方式。
  • 掌握了 np.unique() 去重并排序的功能。

下一节我们将对 NumPy 章节进行整体回顾与小结,梳理本章的核心知识点。

下一篇:笔记|数据分析学习笔记12|本章小结及补充


分享

如果这篇文章对你有帮助,欢迎分享给更多人!

笔记|数据分析学习笔记11|排序函数
https://luq-blog.xyz/posts/2026-07-02-data-notes-11-sort/
作者
Luquiescene
发布于
2026-07-02
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录