【Python学习】NumPy-常用函数

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。如果你有任何问题或需要进一步的帮助,请随时提问!😊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值