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 使用。

图片

“点赞有美意,赞赏是鼓励”

Logo

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

更多推荐