我应该切换到Python吗?

时间:2011-02-21 06:37:13

标签: python matlab numpy scipy

我最近一直在考虑转换到Python编程语言。目前,Matlab是我部门快速开发和编写代码原型的首选语言。它非常擅长这一点,但Mathworks(生产Matlab的公司)一直在修改许可条款,导致无法存在的麻烦。

6 个答案:

答案 0 :(得分:22)

我发现python + numpy + scipy + matplotlib + IPython + [随机sci /数字包]几乎是matlab的完全替代品。肯定有一些软件包丢失了,所以如果有一套专门的工具可以在matlab中使用而不是在python中,这可能是一个问题,但除此之外,我还没有回头。

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

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

我个人使用Enthought Python Distribution来完成我的很多工作,因为它包装了所有内容,对于学术界的个人来说是免费的。我可以从头开始构建python及其所有库和模块。模块管理可能是python中最大的弱点,但有一些很好的东西需要帮助,如virtualenvpip

答案 1 :(得分:11)

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

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

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

答案 2 :(得分:7)

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

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

答案 3 :(得分:4)

在许多情况下,Python当然可以用作Matlab的替代品,使用NumPy,SciPy和Matplotlib(请参阅我的development environment setup guide了解如何安装所有这些软件包)。但是,Matlab做得更好一些,例如提供与数据收集硬件接口的库。因此,您需要尝试使用Python并查看它是否符合您的要求。

答案 4 :(得分:3)

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

为了做出决定,我建议您访问主页Python.org,然后查看文档。

答案 5 :(得分:2)

只需下载scipy并尝试一下。