Python科学计算的发行版和环境

21

如果这个问题过于宽泛,我先提前道歉。我来自MATLAB世界,对Python相对缺乏经验。

在阅读了一些关于基于Python的科学计算环境和发行版的文章之后,我感觉我仍然没有完全理解解决方案的情况或一些显著软件包之间的确切关系,包括:

更具体地说:

  • 上述软件包中是否有任何类似的功能? 它们是否互补?
  • 安装它们中的任何一个是否包含或需要其他哪些软件包的安装? 如果是,哪些软件包包含或需要哪些软件包?

其次,是否还有其他类似于上述软件包提供类似功能的软件包?

提前感谢您的回答。

3个回答

33

使用Python进行科学计算就像将一个简单的语言与一堆模块相结合,这些模块都实现了MATLAB功能的某些方面。因此,与MATLAB相比,Python科学编程的体验有点不连贯。然而,作为一种语言,Python要干净得多。如此而已。

在Python中进行科学计算所需的基本模块是NumpyMatplotlibSciPy,如果你正在进行三维绘图,则需要使用Mayavi/VTK。这些模块都依赖于Numpy。

Numpy实现了一种类似于MATLAB数组(即快速矢量计算)的新数组类型。它还定义了许多用于执行这些计算的函数,这些函数通常与MATLAB中的类似函数命名相同。

Matplotlib允许使用与MATLAB非常相似的命令进行二维绘图。Matplotlib还定义了pylab,它是一个模块 - 只需导入一个模块 - 就可以将大部分Numpy和Matplotlib函数带入全局命名空间。这对于快速/交互式脚本编写非常有用,您不必输入很多命名空间前缀。

SciPy是一个在SciPy组织下排列的Python模块集合,对科学家非常有用。拟合例程在SciPy模块中提供。Numpy是Scipy的一部分。

Spyder是一种桌面IDE(基于QT),松散地试图模仿MATLAB IDE。它是Python-XY发行版的一部分。

IPython提供了一个增强型交互式Python shell,非常适用于尝试代码、运行脚本并与结果交互。现在它也可以通过Web界面提供服务,而不仅仅是传统的控制台。它还嵌入在Spyder IDE中。

发行版

在计算机上运行所有这些模块可能需要耗费很长时间,因此有几个发行版将它们(以及许多其他模块)打包为您提供。

Python-XYWinPythonEnthought 和最近推出的 Anaconda 都是包含所有核心模块的完整软件包发行版,但 Enthought 不带有 Spyder。

Sage 是另一个编程环境,可以通过 Web 或命令行提供服务,也作为包括许多其他模块的完整软件包发布。传统上,它是基于 Linux 安装的 VMWare 映像。虽然你在 Sage 环境中编写 Python,但它与普通的 Python 编程略有不同,它定义了自己的语言和基于 Python 的方法论。

如果你使用的是 Windows,我建议安装 WinPython。它会安装包括 Scipy 和 Spyder(在我看来,Spyder 是 Python 中取代 MATLAB 的最佳选择)在内的所有所需组件,并且由于它被设计为独立运行,它不会干扰您系统上可能已经安装的其他 Python 版本。如果你使用的是 OSX,那么 Enthought 可能是最好的选择,也可以使用例如 MacPorts 单独安装 Spyder。对于 Linux,你可以单独安装组件(Numpy、SciPy、Spyder、Matplotlib)。

我个人不喜欢 Sage 的 Python“隐藏在后台”工作方式,但你可能更喜欢它。


那是一个很好的总结。非常感谢! - Amelio Vazquez-Reina
除了上述内容,为了完整起见,可能还应该包括一些机器学习软件包,例如scikit-learn。顺便说一句,Spyder的最新版本在OSX上运行良好。 - dashesy
我会将Pandas添加到核心科学计算模块列表中。它包含在您列出的发行版中。Pandas使用DataFrame对象来存储和交互数据。对于那些来自R的人来说,这应该很熟悉。 - slizb

4

关于问题的次要部分:

  • Anaconda是另一款值得注意的全面发行版(类似于Enthought和Sage),包含IPython、Spyder等工具... 它还能让你轻松切换Python版本/环境。
  • PyCharm 是另一个值得注意的 IDE,我倾向于使用它。

2

这个链接可能很有用:https://www.cfa.harvard.edu/~ebresser/python/

这是哈佛大学的一位天体物理学家的页面。它提供了一个从ITT-VIS IDL切换到在OS-X上使用Python的人的视角,但大部分技巧也适用于其他操作系统。

编辑:似乎该页面已被删除。另一个面向科学家/工程师的关于Python的良好介绍可以在此文档中找到(PDF警告):http://stsdas.stsci.edu/perry/pydatatut.pdf希望这个不会被删除!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接