📂 目录

  • 排序与筛选函数概述
  • 常用排序函数
  • 常用条件筛选函数
  • 排序与筛选的应用
  • 排序与筛选与广播
  • 出站链接
  • 参考资料

🎯 排序与筛选函数概述

在数据处理中,排序和筛选是非常常见的操作。NumPy 提供了一些强大的函数,可以对数组进行排序,并根据特定条件筛选数组元素。这些函数能帮助我们更好地处理数据,尤其在数据清洗和分析中尤为重要。

NumPy 的排序和筛选函数可以应用于一维和多维数组,支持灵活的排序方式、筛选条件以及多维数据的操作。


🧑‍🏫 常用排序函数

  1. np.sort() – 返回排序后的数组: arr = np.array([3, 1, 2, 4]) print(np.sort(arr)) # 输出:[1 2 3 4]
  2. np.argsort() – 返回排序后元素的索引: print(np.argsort(arr)) # 输出:[1 2 0 3]
  3. np.lexsort() – 多重排序,可以按多个数组排序: arr1 = np.array([3, 1, 2]) arr2 = np.array([4, 2, 3]) print(np.lexsort((arr2, arr1))) # 输出:[1 2 0]
  4. np.sort(axis) – 对多维数组进行排序,可以指定排序的轴: arr_2d = np.array([[3, 2, 1], [6, 5, 4]]) print(np.sort(arr_2d, axis=0)) # 按列排序 # 输出: # [[3 2 1] # [6 5 4]] print(np.sort(arr_2d, axis=1)) # 按行排序 # 输出: # [[1 2 3] # [4 5 6]]

🧑‍🏫 常用条件筛选函数

  1. np.where() – 根据条件筛选数组元素,返回满足条件的元素的索引: arr = np.array([1, 2, 3, 4, 5]) print(np.where(arr > 2)) # 输出:(array([2, 3, 4]),)
  2. np.extract() – 从数组中提取满足条件的元素: condition = arr > 2 print(np.extract(condition, arr)) # 输出:[3 4 5]
  3. np.nonzero() – 返回数组中非零元素的索引: arr = np.array([0, 1, 2, 0, 3]) print(np.nonzero(arr)) # 输出:(array([1, 2, 4]),)
  4. np.select() – 根据多个条件选择不同的值: conditions = [arr < 2, arr > 4] choices = [10, 20] print(np.select(conditions, choices, default=0)) # 输出:[ 0 10 0 0 20]

🧑‍🏫 排序与筛选的应用

排序和筛选在数据分析中具有广泛的应用。例如,选择满足某些条件的元素进行统计分析、根据某些属性对数据进行排序,或者通过筛选选择性地处理数据。

# 筛选出大于 2 的元素
arr = np.array([1, 2, 3, 4, 5])
filtered = np.extract(arr > 2, arr)
print(filtered)  # 输出:[3 4 5]

# 对数组进行排序
arr_sorted = np.sort(arr)
print(arr_sorted)  # 输出:[1 2 3 4 5]


🔄 排序与筛选与广播

在与广播机制结合时,排序和筛选函数能够高效地处理不同形状的数组。例如,当标量与数组进行排序时,标量会被广播为与数组相同的形状。

arr = np.array([1, 2, 3])
mask = arr > 2

# 使用广播筛选元素
print(arr[mask])  # 输出:[3]


🔗 出站链接


📚 参考资料

  • NumPy 官方文档
  • W3Schools Python NumPy 教程
  • GeeksForGeeks 深度讲解
  • 来自:www.52kanjuqing.com