NumPy 排序、条件筛选函数学习笔记
NumPy 是 Python 中一个重要的数值计算库,拥有大量高性能的数学函数和数据结构。其中包括了许多常用的排序、条件筛选函数,本文将介绍这些函数的使用方法及示例。
排序函数
sort
sort 函数可以用来对数组进行排序,可以指定排序方式(升序或降序)。默认情况下,sort 函数会按照最后一个轴的顺序排序。
pythonCopy Codeimport numpy as np
arr = np.array([3, 2, 1, 5, 4])
arr_sorted = np.sort(arr)
print(arr_sorted) # [1 2 3 4 5]
arr_sorted_desc = np.sort(arr)[::-1]
print(arr_sorted_desc) # [5 4 3 2 1]
argsort
argsort 函数可以返回数组排序后的索引值,默认结果是升序排列。可以通过参数指定降序排列。
pythonCopy Codeimport numpy as np
arr = np.array([3, 2, 1, 5, 4])
arr_argsort = np.argsort(arr)
print(arr_argsort) # [2 1 0 4 3]
arr_argsort_desc = np.argsort(arr)[::-1]
print(arr_argsort_desc) # [3 4 0 1 2]
条件筛选函数
where
where 函数可以根据指定的条件,在输入数组中返回元素的索引值。可以用来查找数组中满足某个特定条件的元素。
pythonCopy Codeimport numpy as np
arr = np.array([1, 2, 3, 4, 5])
condition = arr > 3
indices = np.where(condition)
print(indices) # (array([3, 4]),)
# 可以利用返回的索引值设置对应元素的值
arr[indices] = 0
print(arr) # [1 2 3 0 0]
nonzero
nonzero 函数返回数组中非零元素的索引值。
pythonCopy Codeimport numpy as np
arr = np.array([0, 1, 2, 0, 3, 0])
nonzero_indices = np.nonzero(arr)
print(nonzero_indices) # (array([1, 2, 4]),)
# 可以利用返回的索引值设置对应元素的值
arr[nonzero_indices] = -1
print(arr) # [ 0 -1 -1 0 -1 0]
示例
下面是一些排序、条件筛选函数的实际使用示例:
例1:查找二维数组中每行最小值的索引值
pythonCopy Codeimport numpy as np
arr = np.array([[3, 2, 1], [6, 5, 4]])
min_indices = np.argmin(arr, axis=1)
print(min_indices) # [2 2]
例2:根据条件筛选数组中的元素
pythonCopy Codeimport numpy as np
arr = np.array([-2, -1, 0, 1, 2])
condition = arr > 0
positive_elems = arr[condition]
print(positive_elems) # [1 2]
例3:将二维数组的每行元素按照第一列的大小排序
pythonCopy Codeimport numpy as np
arr = np.array([[3, 2, 1], [6, 5, 4], [9, 8, 7]])
sorted_indices = np.argsort(arr[:, 0])
arr_sorted = arr[sorted_indices]
print(arr_sorted)
"""
[[3 2 1]
[6 5 4]
[9 8 7]]
"""
以上是 NumPy 排序、条件筛选函数的相关内容,希望能够帮助读者更好地使用 NumPy 库进行数值计算。