📂 目录
- 排序与筛选函数概述
- 常用排序函数
- 常用条件筛选函数
- 排序与筛选的应用
- 排序与筛选与广播
- 出站链接
- 参考资料
🎯 排序与筛选函数概述
在数据处理中,排序和筛选是非常常见的操作。NumPy 提供了一些强大的函数,可以对数组进行排序,并根据特定条件筛选数组元素。这些函数能帮助我们更好地处理数据,尤其在数据清洗和分析中尤为重要。
NumPy 的排序和筛选函数可以应用于一维和多维数组,支持灵活的排序方式、筛选条件以及多维数据的操作。
🧑🏫 常用排序函数
np.sort()
– 返回排序后的数组:arr = np.array([3, 1, 2, 4]) print(np.sort(arr)) # 输出:[1 2 3 4]
np.argsort()
– 返回排序后元素的索引:print(np.argsort(arr)) # 输出:[1 2 0 3]
np.lexsort()
– 多重排序,可以按多个数组排序:arr1 = np.array([3, 1, 2]) arr2 = np.array([4, 2, 3]) print(np.lexsort((arr2, arr1))) # 输出:[1 2 0]
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]]
🧑🏫 常用条件筛选函数
np.where()
– 根据条件筛选数组元素,返回满足条件的元素的索引:arr = np.array([1, 2, 3, 4, 5]) print(np.where(arr > 2)) # 输出:(array([2, 3, 4]),)
np.extract()
– 从数组中提取满足条件的元素:condition = arr > 2 print(np.extract(condition, arr)) # 输出:[3 4 5]
np.nonzero()
– 返回数组中非零元素的索引:arr = np.array([0, 1, 2, 0, 3]) print(np.nonzero(arr)) # 输出:(array([1, 2, 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 – NumPy Sorting Functions
- GeeksForGeeks – NumPy Sorting and Selection Functions
📚 参考资料
- NumPy 官方文档
- W3Schools Python NumPy 教程
- GeeksForGeeks 深度讲解
- 来自:www.52kanjuqing.com
发表回复