Python 第三方库:SciPy(高级科学计算工具)
SciPy 是建立在 NumPy 之上的强大科学计算库,提供了大量用于数值积分、优化、信号处理、统计分析、线性代数、图像处理等领域的高级算法和工具。按功能划分为多个子模块,如 scipy.optimize, scipy.stats, scipy.integrate, scipy.signal 等。1、SciPy 并非单一函数库,而是一个涵盖多个领域的科学计算平台,适合研究者、工程师、分析师等使用。
SciPy 是建立在 NumPy 之上的强大科学计算库,提供了大量用于数值积分、优化、信号处理、统计分析、线性代数、图像处理等领域的高级算法和工具。它是科学计算与工程应用的核心组件之一,广泛用于科研、工程和金融领域。
安装:
pip install scipy
常见应用场景:
(1)数值积分与微分方程求解。
(2)最优化问题(如拟合、约束优化)。
(3)概率统计分析与分布拟合。
(4)信号处理(滤波器设计、傅里叶变换等)。
(5)图像处理(图像插值、滤波)。
(6)线性代数与稀疏矩阵运算。
(7)科研实验数据分析与建模。
◆ ◆ ◆
核心概念
1、模块化设计
按功能划分为多个子模块,如 scipy.optimize, scipy.stats, scipy.integrate, scipy.signal 等。
2、稀疏矩阵支持
使用 scipy.sparse 处理大型稀疏矩阵,节省内存。
3、高阶数值方法
内建高阶积分器、ODE 解算器、拟合函数、最小二乘优化器等。
4、统计建模
支持各种分布的概率密度函数、累积分布函数、采样等操作。
5、与 NumPy 协同
大部分函数以 NumPy 数组为输入/输出,提升性能与兼容性。
◆ ◆ ◆
应用举例
例 1:求定积分
from scipy import integrate
# 积分 ∫₀¹ x² dxresult, _ = integrate.quad(lambda x: x**2, 0, 1)print(result) # 输出:0.333333...
例 2:最小化函数
from scipy.optimize import minimize
res = minimize(lambda x: x**2 + 2*x + 1, x0=0)print(res.x) # 最小值点约为 -1
例 3:正态分布统计分析
from scipy.stats import norm
print(norm.mean(loc=0, scale=1)) # 均值print(norm.cdf(1.96)) # 标准正态分布累积概率print(norm.ppf(0.975)) # 反向查表
例 4:信号滤波
from scipy import signalimport numpy as np
# 创建一个低通滤波器b, a = signal.butter(4, 0.2)x = np.random.randn(100)y = signal.filtfilt(b, a, x) # 前向后向滤波
例 5:图像插值
from scipy import signalimport numpy as np
# 创建一个低通滤波器b, a = signal.butter(4, 0.2)x = np.random.randn(100)y = signal.filtfilt(b, a, x) # 前向后向滤波
◆ ◆ ◆
常用 API 与模块
scipy.optimize(优化)
minimize():通用函数最小化器
curve_fit():最小二乘拟合
linprog():线性规划求解器
scipy.integrate(积分与微分方程)
quad():计算定积分
odeint():求解微分方程组
dblquad():计算二重积分
scipy.stats(统计分析)
norm.pdf() / cdf() / ppf():概率密度、累积分布与百分位
t.interval():置信区间计算
pearsonr():皮尔逊相关系数
scipy.signal(信号处理)
butter():巴特沃斯滤波器设计
filtfilt():零相位滤波
spectrogram():生成频谱图
scipy.sparse(稀疏矩阵)
csr_matrix():压缩行稀疏格式
lil_matrix():按列表构建稀疏矩阵
sparse.linalg.spsolve():稀疏线性方程组求解
◆ ◆ ◆
补充说明
1、SciPy 并非单一函数库,而是一个涵盖多个领域的科学计算平台,适合研究者、工程师、分析师等使用。
2、SciPy 强依赖 NumPy,使用前需熟悉 ndarray 基础。
3、SciPy 不是专为深度学习设计,但可作为预处理与数学支持库结合 PyTorch、TensorFlow 使用。
4、对于可视化需求,SciPy 本身不包含绘图工具,推荐结合 matplotlib 使用。

“点赞有美意,赞赏是鼓励”
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)