Scipy
扩展包括多种多样的工具箱,这些工具致力于解决科学计算中的常见问题。不同的子模块对应不同的应用,比如插值, 整合, 优化, 图像处理, 统计, 特殊功能等等。
scipy
可以和其他的标准科学计算包相提并论,比如GSL
(C 和 C++编写的GNU科学库), 或者 Matlab 的工具箱。 scipy
是Python科学计算中的核心扩展;它能够在numpy
列表上有效的运作,以便numpy 和 scipy 能够互相协同。
在执行一个历程之前,值得核对期望的数据处理工作是否已经在Scipy中执行。作为非专业的开发人员, 科研人员往往倾向于重复造轮子,这使得写出的代码冗余,不佳, 难以共享和不利于维护。相反, Scipy
中的代码是经过优化和测试过的,而且可能的情况是是最值得使用的。
scipy 包括以下特殊任务的子模块:
scipy.cluster | Vector quantization / Kmeans |
---|---|
scipy.constants | Physical and mathematical constants |
scipy.fftpack | Fourier transform |
scipy.integrate | Integration routines |
scipy.interpolate | Interpolation |
scipy.io | Data input and output |
scipy.linalg | Linear algebra routines |
scipy.ndimage | n-dimensional image package |
scipy.odr | Orthogonal distance regression |
scipy.optimize | Optimization |
scipy.signal | Signal processing |
scipy.sparse | Sparse matrices |
scipy.spatial | Spatial data structures and algorithms |
scipy.special | Any special mathematical functions |
scipy.stats | Statistics |
所有上面的子模块均依赖于 numpy
,但是模块之间应该保持相互尽可能的独立。导入 Numpy 和这些 Scipy 模块的标准方式如下:
>>> import numpy as np
>>> from scipy import stats # same for other sub-modules
scipy
主空间很有可能包含了一些 numpy 函数(试试 scipy.cos
即 np.cos
)。 这些暴露仅仅是历史的原因;通常没有理由在你的代码中使用import scipy
。