SciPy介绍

概述#

前往 SciPy 官方网站

前往 SciPy 官方网站

SciPy(发音 /ˈsaɪpaɪ/)是一个自由和开源的 Python 库,用于科学和工程计算。SciPy 包含多个模块,用于统计、最优化、积分、插值、线性代数、傅里叶变换、符号和图像处理、常微分方程求解,等等。

SciPy 基于 NumPy 构建,通过与 NumPy 数组配合,在操作和可视化数据方面提供了许多高级的命令和类,大大增强了 Python 的能力。

SciPy 在 BSD 协议下发布,其开发工作由一个开放的开发者社区赞助和支持。与之同类的软件还包括 MATLABGNU OctaveScilab 等。

SciPy 的特色#

  • **基础算法。**SciPy 提供了很多算法,用于解决各种问题,如最优化、积分、插值、特征值问题、代数方程、微分方程、统计,等等。
  • **广泛适用。**SciPy 提供的算法和数据结构可在各个领域广泛适用。
  • **基础性。**通过扩展 NumPy,提供了进行数组计算的额外工具,以及专用数据结构,如稀疏矩阵、k-d 树。
  • **高性能。**SciPy 包装了一些由 Fortran、C 和 C++ 等编译型高性能语言编写的高度优化的软件模块,可以同时享受 Python 的灵活性以及编译型代码的速度。
  • **易用。**SciPy 的高级语法使之可以被任意背景和经验等级的程序员高效使用。
  • **开源。**在 GitHub 上使用 BSD 协议发布,由社区开发和维护。

安装 SciPy#

通过 pip 安装:

pip install scipy  # 或 python -m pip install scipy

通过 conda 安装:

conda install scipy

对于其他操作系统或包管理系统,可能需要用其他的安装方法,详见官方的安装指导

SciPy 提供的子包#

针对不同的科学计算领域,SciPy 提供了不同的子包,他们包括:

算术运算符
子包 描述 子包 描述
cluster 聚类算法 constants 物理和数学常量
fftpack 快速傅里叶变换例程 integrate 积分和常微分方程求解
interpolate 插值和平滑的样条曲线 io 输入和输出
linalg 线性代数 ndimage N 维图像处理
odr 正交距离回归 optimize 最优化和求根例程
signal 信号处理 sparse 稀疏矩阵和相关例程
spatial 空间数据结构和算法 special 特殊函数
stats 统计分布和函数

关于本章#

SciPy:科学计算的基础算法包 线性代数