SciPy
- github
.com /scipy /scipy
SciPy是一个开源的Python算法库和数学工具包。SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
SciPy目前在BSD许可证下发布。它的开发最初由Enthought(英语:Enthought)资助。与其功能相类似的软件还有MATLAB、GNU Octave和Scilab。
组成
SciPy工具包是Python科学计算的核心,其功能根据功能分成如下子包:
- cluster(聚类):层次聚类,向量量化,K-均值聚类。
- constants(常数):物理常数和换算系数。
- datasets(数据集):装载SciPy数据集。
- fft:快速离散傅里叶变换算法。
- fftpack(fft包):遗留的离散傅里叶变换接口。
- integrate(积分):数值积分工具。
- interpolate(插值):插值工具。
- io:数据输入输出,支持读写MATLAB文件、读IDL文件、读写Matrix Market(英语:Matrix Market exchange formats)文件、非格式化FORTRAN文件、netCDF的CDF-1与CDF-2格式文件、Harwell-Boeing(英语:Harwell-Boeing file format)文件、WAV声音文件和读Arff文件。
- linalg:线性代数工具。
- misc(杂项):杂项例如示例图片。
- ndimage(n-维图像):用于多维图像处理的函数。
- ODR:正交距离回归(英语:Total_least_squares)(Orthogonal Distance Regression)的类与算法。
- optimize(优化):优化算法例如线性规划。
- signal(信号):信号处理工具。
- sparse(稀疏):稀疏矩阵及相关算法。
- spatial(空间):空间结构有关算法如k-d树、最邻近搜索、凸包等。
- special(特殊): 特殊函数。
- stats(统计):统计函数,如概率分布、汇总统计量(英语:Summary statistics)、频率统计量、假设检验、相关、重抽样、蒙特卡罗方法、列联表。
早先版本中的weave(编织)模块,用于在Python代码中包含C/C++代码的工具,现已弃用,被Cython取代[2]。
数据结构
SciPy的基础数据结构是由NumPy模块提供的多维阵列。NumPy提供了一些有关线性代数、傅里叶变换和随机数生成的函数,但不具备SciPy中对应函数的通用性。NumPy还可以作为任意数据类型的高效多维数据容器,这使得NumPy可以快速无缝地和众多数据库集成。 旧版SciPy使用Numeric作为阵列类型,但现已弃用,新版SciPy改用Numpy实现的阵列。[3]
历史
在1990年代,Python引入了用于数值计算的阵列类型Numeric(这个包最终被Travis Oliphant(英语:Travis_Oliphant)编写的NumPy取代);此后,扩展模块数量不断增加,许多人对一个完整的科学技术计算环境感兴趣。2001年,Travis Oliphant、Eric Jones和Pearu Peterson合并了他们编写的代码,并将结果包命名为SciPy。新创建的包对Numeric数据结构提供了常见数值运算。此后不久,Fernando Pérez发布了IPython(增强型交互式shell,在科学计算界广泛使用);John Hunter发布了Matplotlib(2D绘图库)的第一个版本,SciPy环境继续增长,并增加了更多用于科学计算的工具。[4][5][6]
参考文献
- ^ 1.0 1.1 Release 1.14.1. 2024年8月21日 [2024年8月27日].
- ^ SciPy 0.15.0 Release Notes — SciPy v1.6.2 Reference Guide. docs.scipy.org. [2021-04-13]. (原始内容存档于2021-04-13).
- ^ NumPy Homepage. [2023-03-10]. (原始内容存档于2011-04-14).
- ^ History of SciPy. [2023-03-10]. (原始内容存档于2015-07-09).
- ^ Guide to NumPy (PDF). [2023-03-10]. (原始内容存档 (PDF)于2013-10-19).
- ^ Python for Scientists and Engineers. [2023-03-10]. (原始内容存档于2019-02-19).
外部链接
- 查
- 论
- 编
- NumPy
- SciPy
- matplotlib
- pandas
- scikit-learn
- scikit-image(英语:scikit-image)
- statsmodels(英语:statsmodels)
- MayaVi(英语:MayaVi)
- 更多
这是一篇与自由软件有关的小作品。您可以通过编辑或修订扩充其内容。
|