NumPy 提供了大量的函数,用于各种科学计算任务,包括数学运算、统计分析、矩阵操作等。以下是一些常用的 NumPy 函数及其用法示例:
1. 数学函数
NumPy 提供了许多数学函数,用于执行常见的数学运算。
基本数学函数
import numpy as np
# 创建一个数组
arr = np.array([1, 2, 3, 4])
# 计算平方根
sqrt_result = np.sqrt(arr)
print(sqrt_result) # 输出: [1. 1.41421356 1.73205081 2. ]
# 计算指数
exp_result = np.exp(arr)
print(exp_result) # 输出: [ 2.71828183 7.3890561 20.08553692 54.59815003]
# 计算自然对数
log_result = np.log(arr)
print(log_result) # 输出: [0. 0.69314718 1.09861229 1.38629436]
# 计算正弦
sin_result = np.sin(arr)
print(sin_result) # 输出: [0.84147098 0.90929743 0.14112001 -0.7568025 ]
2. 统计函数
NumPy 提供了多种统计函数,用于计算数组的各种统计量。
常用统计函数
# 创建一个二维数组
arr2d = np.array([[1, 2, 3], [4, 5, 6]])
# 计算平均值
mean_result = np.mean(arr2d)
print(mean_result) # 输出: 3.5
# 计算中位数
median_result = np.median(arr2d)
print(median_result) # 输出: 3.5
# 计算标准差
std_result = np.std(arr2d)
print(std_result) # 输出: 1.707825127659933
# 计算方差
var_result = np.var(arr2d)
print(var_result) # 输出: 2.9166666666666665
# 计算最大值
max_result = np.max(arr2d)
print(max_result) # 输出: 6
# 计算最小值
min_result = np.min(arr2d)
print(min_result) # 输出: 1
# 计算和
sum_result = np.sum(arr2d)
print(sum_result) # 输出: 21
# 计算累积和
cumsum_result = np.cumsum(arr2d)
print(cumsum_result) # 输出: [ 1 3 6 10 15 21]
3. 矩阵操作
NumPy 提供了许多矩阵操作函数,用于执行矩阵运算。
常用矩阵操作函数
# 创建两个二维数组
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# 矩阵乘法
dot_result = np.dot(A, B)
print(dot_result)
# 输出:
# [[19 22]
# [43 50]]
# 转置
transpose_result = A.T
print(transpose_result)
# 输出:
# [[1 3]
# [2 4]]
# 计算逆矩阵
inv_result = np.linalg.inv(A)
print(inv_result)
# 输出:
# [[-2. 1. ]
# [ 1.5 -0.5]]
# 计算行列式
det_result = np.linalg.det(A)
print(det_result) # 输出: -2.0
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)
print(eigenvalues) # 输出: [5.37228132 0.37228132]
print(eigenvectors)
# 输出:
# [[-0.41597356 -0.80776897]
# [ 0.90937529 -0.5896754 ]]
4. 随机数生成
NumPy 提供了多种生成随机数的方法。
常用随机数生成函数
# 生成均匀分布的随机数
uniform_random = np.random.rand(3)
print(uniform_random) # 输出: [0.12345678 0.90123456 0.78901234]
# 生成标准正态分布的随机数
normal_random = np.random.randn(3)
print(normal_random) # 输出: [ 0.49671415 -0.1382643 0.64768854]
# 生成整数随机数
integer_random = np.random.randint(0, 10, 3)
print(integer_random) # 输出: [2 8 4]
# 生成随机排列
random_permutation = np.random.permutation([1, 2, 3, 4, 5])
print(random_permutation) # 输出: [3 2 5 1 4]
5. 排序和查找
NumPy 提供了排序和查找函数,用于对数组进行排序和查找特定元素。
常用排序和查找函数
# 创建一个数组
arr = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
# 排序
sorted_arr = np.sort(arr)
print(sorted_arr) # 输出: [1 1 2 3 3 4 5 5 5 6 9]
# 获取排序后的索引
sorted_indices = np.argsort(arr)
print(sorted_indices) # 输出: [1 3 6 0 10 2 4 8 7 9 5]
# 查找最大值的索引
max_index = np.argmax(arr)
print(max_index) # 输出: 5
# 查找最小值的索引
min_index = np.argmin(arr)
print(min_index) # 输出: 1
# 查找非零元素的索引
nonzero_indices = np.nonzero(arr)
print(nonzero_indices) # 输出: (array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]),)
6. 文件读写
NumPy 提供了读取和保存数组的功能,方便数据的持久化存储。
常用文件读写函数
# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])
# 保存数组到文件
np.save('array.npy', arr)
# 从文件加载数组
loaded_arr = np.load('array.npy')
print(loaded_arr) # 输出: [1 2 3 4 5]
# 保存多个数组到一个文件
np.savez('arrays.npz', arr1=arr, arr2=np.array([6, 7, 8]))
# 从文件加载多个数组
loaded_arrays = np.load('arrays.npz')
print(loaded_arrays['arr1']) # 输出: [1 2 3 4 5]
print(loaded_arrays['arr2']) # 输出: [6 7 8]
总结
NumPy 提供了丰富的函数,涵盖了数学运算、统计分析、矩阵操作、随机数生成、排序和查找等多个方面。这些函数不仅功能强大,而且使用简便,能够极大地提高科学计算和数据分析的效率。希望这些示例能帮助你在实际工作中更好地使用 NumPy。如果你有任何问题或需要进一步的帮助,请随时提问!😊