【问题标题】:Should i switch to Python? [closed]我应该切换到 Python 吗? [关闭]
【发布时间】:2011-07-01 02:04:57
【问题描述】:

我最近一直在考虑改用 Python 编程语言。目前,Matlab 是我部门快速开发和代码原型设计的首选语言。它在这方面做得很好,但是 Mathworks(生产 Matlab 的公司)一直在修改许可条款,导致了不应该存在的麻烦。

【问题讨论】:

  • 您可以详细说明您的特定需求(例如使用的特定工具箱是什么)。谢谢

标签: python matlab numpy scipy


【解决方案1】:

我发现 python+numpy+scipy+matplotlib+IPython+[random sci/numerical packages] 几乎可以完全替代 matlab。肯定有一些包丢失了,所以如果有一组专门的工具在 matlab 中可用但在 python 中没有,这可能是一个问题,但否则,我没有回头。

我将提到 python 相对于 matlab 的几个明显优势

  • 真正的编程语言,而不是对数字包上的语言的破解(numpy 来到 python 而不是相反)。与 matlab 相比,管理大型 python 项目是一种完全的乐趣。有多少种不同的 oop 系统被整合到 matlab 中?
  • 完全免费且便携。我可以在几乎任何机器上使用 python 而没有许可问题。从我的角度来看,这是最大的优势。
  • 使用 SWIG、Cython、f2py 等将其他库包装在 C、C++、Fortran 中相当简单,而 mex 文件则比较丑陋
  • Cython 用于加速慢速代码(尽管我发现 numpy 的速度几乎与 matlab 一样快)
  • mpi4py 与我必须从 matlab 购买以运行并行应用程序的其他一些软件包

我个人在很多工作中都使用 Enthought Python Distribution,因为它打包了所有内容,并且对学术界的个人免费。我也可以从头开始构建 python 及其所有库和模块。模块管理可能是 python 中最大的弱点,但也有一些不错的东西可以提供帮助,例如 virtualenvpip

【讨论】:

  • "有多少不同的 oop 系统被破坏到 matlab 中?"我只使用了六个: 1. 旧样式 OO 2. 旧 shema 3. 闭包仿真(嵌套函数) 4. 全局/持久仿真 5. 新样式 OO 6. 使用 Java 对象。还有吗?
  • 为什么说模块管理是python的弱点呢?我认为这很神奇。您可以拥有本地或全局(系统范围)模块,并且整个命名空间系统保持一切干净。
  • 我认为可能存在一个小误解:通过“模块管理”,答案是指“模块分发”(这确实是一个挑战,pip 最近正在逐步解决变化),不是命名空间,“Namespaces are one honking great idea -- let's do more of those!”.
【解决方案2】:

选择取决于成本。如果您乐意为 Matlab 付费——尤其是如果您使用工具箱——您可能会发现 Python 不提供这样的集成包。将矩阵作为基本数据类型使 Matlab 成为许多数学任务的直观语言。就个人而言,我发现 this 与调试器相结合是非常宝贵的。

Python 通过 NumPy、SciPy 等提供相同的功能。当然会有一个学习曲线需要克服。

如果您正在执行一般编程任务,而不是特别应用数学解决方案,那么 Python 是一种非常易于使用且适应性强的语言。它也是免费的 - 这可能是一个决定性因素。

【讨论】:

    【解决方案3】:

    如果您正在寻找批发的 Matlab 替代品,您可能需要查看 Python(x, y)。它旨在提供更具凝聚力的体验,而不是让新用户自己在互联网上搜寻合适的组件来使用。

    另一个选项是GNU Octave,它本质上是 MATLAB 的开源克隆。

    【讨论】:

      【解决方案4】:

      在许多情况下,Python 当然可以用作 Matlab 的替代品,通过使用 NumPy、SciPy 和 Matplotlib(请参阅我的 development environment setup guide 了解如何安装所有这些包)。但是,Matlab 在某些方面做得更好,例如提供与数据收集硬件接口的库。所以你需要试试 Python 看看它是否满足你的要求。

      【讨论】:

        【解决方案5】:

        你是否应该切换取决于你对 Python 的看法。我自己喜欢 Python,而且我知道它对于快速原型设计非常有效。语法简洁明快,非常容易学习。

        要做出决定,我建议您访问主页Python.org,并查看文档。

        【讨论】:

          【解决方案6】:

          只需下载scipy 并尝试一下。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多