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

时间:2011-07-16 18:20:38

标签: python scientific-computing

如果这个问题过于宽泛,我会提前道歉。我来自MATLAB世界,对Python的经验相对较少。

在花了一些时间阅读几个基于Python的环境和科学计算发行版之后,我觉得我仍然不完全理解解决方案的前景或某些着名包之间的确切关系,包括:

更具体地说:

  • 上述任何一个包都提供类似的功能吗?他们互相补充吗?
  • 其中任何一个的安装是否包含或要求安装任何 其他?如果是,哪些包括或要求哪个?

不太重要的是,是否有其他类似于上述类似功能的软件包?

提前致谢

3 个答案:

答案 0 :(得分:33)

使用Python进行科学计算正在采用普通的语言并在一堆模块上进行操作,每个模块都实现了MATLAB功能的某些方面。因此,Python科学编程的经验是有点不连贯的c.f. MATLAB。然而,Python作为一种语言更加清晰。它就是这样。

Python中科学计算的基本必要模块是NumpyMatplotlibSciPy,如果你正在进行3d绘图,那么Mayavi/VTK。这些模块都依赖于Numpy。

Numpy 实现一个与MATLAB数组类似的新数组类型(即快速向量计算)。它还定义了一系列函数来进行这些计算,这些函数通常与MATLAB中的类似函数命名相同。

Matplotlib 允许使用与MATLAB非常相似的命令进行2d绘图。 Matplotlib还定义了 pylab ,这是一个模块 - 只需一次导入 - 将大多数Numpy和Matplotlib函数带入全局命名空间。这对于您不希望键入大量名称空间前缀的快速/交互式脚本非常有用。

SciPy 是在SciPy保护伞下安排的Python模块的集合,对科学家有用。 SciPy模块中提供了拟合程序。 Numpy是Scipy的一部分。

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

IPython 提供了增强的交互式Python shell,可用于尝试代码和运行脚本以及与结果交互。现在可以将其提供给Web界面以及传统控制台。它也嵌入在Spyder IDE中。

分布

在计算机上运行所有这些模块可能非常耗时,因此有一些发行版可以为您打包它们(以及许多其他模块)。

Python-XY WinPython Enthought 以及最近 Anaconda 都是完整包包含所有核心模块的发行版,尽管Enthought没有附带Spyder。

Sage 是另一种编程环境,可通过网络或命令行提供,也可作为包含许多其他模块的完整包。传统上它是基于Linux安装的VMWare映像。虽然你在Sage环境中编写Python,但它与普通的Python编程有点不同,它有点定义了自己的基于Python的语言和方法。

如果您使用的是Windows,我会安装WinPython。它安装了你需要的所有东西,包括Scipy和Spyder(它是MATLAB for Python恕我直言的最佳替代品),因为它是独立设计的,它不会干扰你在系统上可能拥有的其他Python安装。如果你在OSX上,Enthought可能是最好的方法 - Spyder可以单独使用,例如MacPorts的。对于Linux,您可以单独安装组件(Numpy,SciPy,Spyder,Matplotlib)。

我个人不喜欢Sage使用Python隐藏在引擎盖下的方式,但你可能更喜欢。

答案 1 :(得分:4)

关于问题中不太重要的部分:

  • Anaconda是与IPython,Spyder一起推出的另一个值得注意的完全发布的发行版(类似于Enthought和Sage)......它也让你轻松切换python版本/环境。
  • PyCharm是另一个值得注意的IDE,我倾向于使用它。

答案 2 :(得分:2)

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

这是哈佛大学天体物理学家的一页。它提供了某人在OS-X上从ITT-VIS IDL切换到python的观点(但大多数提示也适用于其他操作系统)。

编辑:该网页似乎已被删除。对于科学家/工程师来说,python的另一个很好的介绍是在本文档中(大PDF警告):http://stsdas.stsci.edu/perry/pydatatut.pdf 希望这个不会被删除!