科学类库SciPy的核心结构 郝伟 2021/03/023 [TOC]
1. 1 简介
SciPy是一个常用的科学类库,在网上有大量的相关教程,但是网上的内容多是只见树木不见森林,缺少对整个类库的描述。所以本文就通过调研和总结,对此类库的结构进行介绍。由于SciPy的类库内容非常多,所以本文只对其常用或核心的内容进行主要简介。
2. 2 基本信息
SciPy (发音:沙怕一) 有两层含意:狭义上指的是 SciPy库;广义上指定的是是一个基于Python的用于数学、科研和工程的完成生态环境,称为SciPy栈,包括以下6个项目(5库1台):
- NumPy库 基于多维数组的组件包;
- pandas库 数据结构和统计分析库;
- SciPy库 科学计算的基础库;
- Matplotlib库 图像绘制库;
- SymPy库 符号数学包;
- IPython 加强的交互控制台。
以上6个项目均为社区更新,NumFOCUS 支助。本文主要介绍的是 SciPy 库。
3. 3 主要功能
SciPy库主要有十多个核心功能,每个功能都有相应的类来支持,如下表所示。
类名 | 作用 |
---|---|
scipy.special | 一些特殊函数。 |
scipy.integrate | 积分相关内容。 |
scipy.optimize | 优化相关。 |
scipy.interpolate | 函数插值。 |
scipy.fft | 傅立叶变更。 |
scipy.signal | 信号处理。 |
scipy.linalg | 线性代数。 |
scipy.sparse.csgraph | 压缩稀疏矩阵路由算法相关。 |
scipy.spatial | 空间数据结构和算法。 |
scipy.stats | 统计学相关。 |
scipy.ndimage | 多维图像处理相关。 |
scipy.io | 文件读写相关。 |
4. 4 主要核心文档入口
以下是主要库的文档入口地址:
- Clustering package (scipy.cluster)
- Constants (scipy.constants)
- Discrete Fourier transforms (scipy.fft)
- Legacy discrete Fourier transforms (scipy.fftpack)
- Integration and ODEs (scipy.integrate)
- Interpolation (scipy.interpolate)
- Input and output (io)
- Linear algebra (scipy.linalg)
- Miscellaneous routines (scipy.misc)
- Multidimensional image processing (scipy.ndimage)
- Orthogonal distance regression (scipy.odr)
- Optimization and root finding (scipy.optimize)
- Signal processing (scipy.signal)
- Sparse matrices (scipy.sparse)
- Sparse linear algebra (scipy.sparse.linalg)
- Compressed sparse graph routines (scipy.sparse.csgraph)
- Spatial algorithms and data structures (scipy.spatial)
- Special functions (scipy.special)
- Statistical functions (scipy.stats)
- Statistical functions for masked arrays (scipy.stats.mstats)
- Low-level callback functions
5. 5 小结
SciPy是一个很大的库,包括的内容非常丰富,一般人很难全部掌握(实际上也不需要)。我们只需要关注自己所需要的计算内容即可,如常用的积分、统计学线性代数相关的内容等。
6. 参考资料
[1] SciPy官网, https://www.SciPy.org/ [2] SciPy官方文档, https://docs.scipy.org/doc/ [3] SciPy API文档, https://docs.scipy.org/doc/scipy/reference/