1 基本数学函数
NumPy 提供了大量的数学函数来执行各种基本运算。这些函数可以作用于数组的每个元素,且支持广播机制。
1.1 三角函数
NumPy 提供了一组常见的三角函数,包括 sin()
、cos()
、tan()
及其反函数。
import numpy as np
# 创建一个数组
angles = np.array([0, np.pi/2, np.pi, 3*np.pi/2])
# 计算正弦值
sin_vals = np.sin(angles)
print("正弦值:", sin_vals)
# 计算余弦值
cos_vals = np.cos(angles)
print("余弦值:", cos_vals)
# 计算反正弦值
arcsin_vals = np.arcsin(np.sin(np.pi/6))
print("反正弦值:", arcsin_vals)
1.2 指数和对数函数
NumPy 提供了指数函数 exp()
和对数函数 log()
,这些函数对于计算增长率、衰减和缩放非常有用。
# 计算指数
exp_vals = np.exp([1, 2, 3])
print("指数值:", exp_vals)
# 计算自然对数
log_vals = np.log([1, np.e, np.e**2])
print("自然对数:", log_vals)
# 计算以 10 为底的对数
log10_vals = np.log10([1, 10, 100])
print("以 10 为底的对数:", log10_vals)
1.3 幂运算和平方根
NumPy 提供了 power()
和 sqrt()
函数来处理幂运算和求平方根。
# 幂运算
pow_vals = np.power([2, 3, 4], 3)
print("幂运算结果:", pow_vals)
# 计算平方根
sqrt_vals = np.sqrt([4, 9, 16])
print("平方根结果:", sqrt_vals)
2 数组的统计分析
统计分析是数据科学的重要部分,NumPy 提供了多种用于数组统计的函数,包括计算均值、中位数、方差、标准差等。
2.1 均值、中位数和众数
- 均值: 使用
mean()
函数计算数组的算术平均值。 - 中位数: 使用
median()
函数计算数组的中间值。
# 创建一个数组
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
# 计算均值
mean_val = np.mean(data)
print("均值:", mean_val)
# 计算中位数
median_val = np.median(data)
print("中位数:", median_val)
众数 并非 NumPy 内置函数,而需要使用 scipy.stats.mode()
来计算。
2.2 方差和标准差
- 方差: 使用
var()
函数计算数据的方差,反映数据的波动性。 - 标准差: 使用
std()
函数计算数据的标准差。
# 计算方差
var_val = np.var(data)
print("方差:", var_val)
# 计算标准差
std_val = np.std(data)
print("标准差:", std_val)
2.3 最大值、最小值、极差
- 最大值: 使用
max()
函数获取数组中的最大值。 - 最小值: 使用
min()
函数获取数组中的最小值。 - 极差: 极差是最大值与最小值之间的差值。
# 计算最大值
max_val = np.max(data)
print("最大值:", max_val)
# 计算最小值
min_val = np.min(data)
print("最小值:", min_val)
# 计算极差
range_val = np.ptp(data)
print("极差:", range_val)
2.4 累积和与累积积
- 累积和: 使用
cumsum()
函数计算数组的累积和。 - 累积积: 使用
cumprod()
函数计算数组的累积积。
# 计算累积和
cumsum_vals = np.cumsum(data)
print("累积和:", cumsum_vals)
# 计算累积积
cumprod_vals = np.cumprod(data)
print("累积积:", cumprod_vals)
3 随机数生成
在数据模拟、蒙特卡罗模拟等领域,随机数的生成非常重要。NumPy 提供了强大的随机数生成模块 numpy.random
,用于生成各种类型的随机数。
3.1 生成随机整数
randint()
函数可以生成指定范围内的随机整数。
# 生成 0 到 10 之间的随机整数
rand_ints = np.random.randint(0, 10, size=5)
print("随机整数:", rand_ints)
3.2 生成随机浮点数
rand()
和 randn()
函数可以生成 0 到 1 之间的随机浮点数或标准正态分布的随机数。
# 生成 0 到 1 之间的随机浮点数
rand_floats = np.random.rand(3, 3)
print("随机浮点数:\n", rand_floats)
# 生成标准正态分布的随机数
rand_norm = np.random.randn(3, 3)
print("正态分布随机数:\n", rand_norm)
3.3 固定随机数种子
为了保证随机数生成的可重复性,可以使用 seed()
函数来固定随机数种子。
# 固定随机数种子
np.random.seed(42)
fixed_rand_ints = np.random.randint(0, 10, size=5)
print("固定种子的随机整数:", fixed_rand_ints)
3.4 洗牌与抽样
- 洗牌: 使用
shuffle()
函数对数组元素进行随机排列。 - 抽样: 使用
choice()
函数从数组中随机抽样。
# 创建一个数组
arr = np.arange(10)
# 洗牌
np.random.shuffle(arr)
print("洗牌后的数组:", arr)
# 随机抽样
sample = np.random.choice(arr, size=5, replace=False)
print("随机抽样:", sample)
4 线性代数
NumPy 的 linalg
模块提供了常见的线性代数运算,包括矩阵乘法、矩阵的逆、行列式、特征值和特征向量等。
4.1 矩阵乘法
dot()
函数可以用于矩阵乘法运算,支持二维矩阵之间的乘法以及向量与矩阵之间的乘法。
# 创建两个矩阵
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
# 进行矩阵乘法
dot_product = np.dot(matrix1, matrix2)
print("矩阵乘法结果:\n", dot_product)
4.2 计算矩阵的逆
inv()
函数用于计算矩阵的逆,要求矩阵是方阵。
from numpy.linalg import inv
# 计算矩阵的逆
matrix_inv = inv(matrix1)
print("矩阵的逆:\n", matrix_inv)
4.3 计算行列式
det()
函数用于计算矩阵的行列式。
from numpy.linalg import det
# 计算行列式
matrix_det = det(matrix1)
print("矩阵的行列式:", matrix_det)
4.4 特征值与特征向量
eig()
函数用于计算矩阵的特征值和特征向量。
from numpy.linalg import eig
# 计算特征值与特征向量
eigenvalues, eigenvectors = eig(matrix1)
print("特征值:", eigenvalues)
print("特征向量:\
n", eigenvectors)
标签:函数,val,python,科学计算,print,np,计算,vals,NumPy
From: https://blog.csdn.net/imdeity/article/details/141942062