python科学计算和数据科学应用pdf_【Nature Methods 】SciPy 1.0:Python科学计算的基本算法...

       SciPy是Python编程语言的一个数学程序库,它为建模和解决科学问题提供了构建块。SciPy包括优化、积分、插值、特征值问题、代数方程、微分方程和许多其他类问题的算法;它还提供特殊的数据结构,如稀疏矩阵和k-维树。SciPy是建立在NUMPY之上的,它提供了array数据结构和相关的快速的数学程序,而SciPy本身就是构建更高级别的科学库的基础,包括scikit-learn和scikit-image。在这篇文章中,我们概述了SciPy 1.0的功能和开发实践,并重点介绍了最近的一些技术进展。

    截至2019年2月,SciPy库包含将近600,000行开源代码,这些代码按图1汇总的16个子包进行组织。开发团队和社区目前主要在GitHub上进行交互和操作,这是一个在线版本控制和任务管理平台。超过110,000个GitHub存储库和6,500个软件包依赖SciPy。

0b6444ef8a9d29c4d23596481c050b58.png

图1:SciPy包组织

    一、架构和实现

    1.1 项目范围

    SciPy提供了用于科学计算的基本算法。在发展相对较缓慢的领域,SciPy旨在提供完整的覆盖范围。在其他领域,SciPy的目的是提供基本的构建块,同时与该领域的其他包进行良好的交互。例如,SciPy提供了概率分布,假设检验,频率统计,相关函数等,而Statsmodels提供了更高级的统计估计量和推断方法,scikit- learn3涵盖了机器学习,而PyMC3,emcee和PyStan  (http://mc-stan.org) 涵盖了贝叶斯统计和概率建模。scikit-image4提供了比SciPy的ndimage模块更加优秀的的图像处理功能,SymPy提供了用于符号计算的Python交互界面,而sparse. csgraph和spatial与诸如NetworkX之类的专用库相比提供了与图形和网络一起使用的基本工具。

    我们使用以下标准来确定是否要在SciPy中加入新特征:

     •该算法与多个科学领域相关。

     •该算法非常重要。例如,它足够经典,可以包含在教科书中,或者基于经过大量同行引用的同行评审文章。

    在软件系统和体系结构方面,SciPy的范围与NumPy的范围相匹配。

    1.2 语言选择

    根据linguist库 (https://github.com /github/linguist) 的分析,SciPy大约是Python占50%,Fortran占25%,C占20%,Cython占3%和C ++占2%,以及少量的TeX, Matlab,shell 脚本和Make。

    尽管Fortran已有很长的历史,但它仍然是一种高性能的科学编程语言。因此,我们包装了以下出色的且经过实测的Fortran库,以在为Python带来便利的同时提高性能:QUADPACK和ODEPACK用于数值积分和初值问题的解决;FITPACK,ODRPACK和MINPACK用于曲线拟合和最小二乘最小化;FFTPACK用于执行傅立叶变换;ARPACK用于解决特征值问题;用于计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值