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

Ame*_*ina 21 python scientific-computing

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

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

进一步来说:

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

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

提前致谢

Bre*_*dan 33

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

在Python科学计算的基本需要的模块Numpy,Matplotlib,SciPy如果你正在做的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是另一种编程环境,可以通过Web或命令行提供,也可以作为包含许多其他模块的完整包.传统上它是基于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隐藏在引擎盖下的方式,但你可能更喜欢.