【问题标题】:Python distributions and environments for scientific computing用于科学计算的 Python 发行版和环境
【发布时间】:2011-10-06 20:28:04
【问题描述】:

如果这个问题过于笼统,我先道歉。我来自 MATLAB 世界,对 Python 的经验相对较少。

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

更具体地说:

  • 上述软件包是否提供类似的功能?它们是否相得益彰?
  • 其中任何一个的安装是否包括或需要安装任何 其他的?如果有,哪些包含或需要哪些?

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

提前致谢

【问题讨论】:

    标签: python scientific-computing


    【解决方案1】:

    使用 Python 进行的科学计算采用了一种普通的普通语言并绑定了一堆模块,每个模块都实现了 MATLAB 功能的某些方面。因此,Python 科学编程的经验有点不连贯。 MATLAB。然而,Python 作为一种语言要干净得多。就这样吧。

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

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

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

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

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

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

    分布

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

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

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

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

    我个人不喜欢 Sage 使用“隐藏在引擎盖下”的 Python 工作方式,但您可能更喜欢这种方式。

    【讨论】:

    • 这是一个很棒的总结。非常感谢!
    • 为了完整起见,除了上述内容之外,可能还应包括某种机器学习包,例如 scikit-learn。顺便说一句,最新版本的 Spyder 在 OSX 上运行良好。
    • 我会将 Pandas 添加到核心科学计算模块列表中。它包含在您列出的发行版中。 Pandas 使用 DataFrame 对象来存储数据并与之交互。来自 R 的人应该对此很熟悉。
    【解决方案2】:

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

    • Anaconda 是另一个值得注意的完整发行版(类似于 Enthought 和 Sage),它与 IPython、Spyder 一起提供......它还可以让您轻松切换 python 版本/环境。
    • PyCharm 是另一个值得注意的 IDE,我倾向于使用它。

    【讨论】:

      【解决方案3】:

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

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

      编辑:该页面似乎已被删除。本文档(大 PDF 警告)为科学家/工程师提供了另一种很好的 Python 介绍:http://stsdas.stsci.edu/perry/pydatatut.pdf 希望这个不要被拆!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-05
        • 2014-01-10
        • 1970-01-01
        • 1970-01-01
        • 2014-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多