Python与Matlab

Ric*_*h C 26 python ide matlab

我正在考虑从MATLAB切换到Python.该应用程序是定量交易,成本并不是真正的问题.有一些我喜欢MATLAB的东西,我想知道Python如何堆叠(在我读过的评论中找不到任何答案).

  1. 是否有一个适合Python的IDE与MATLAB(变量编辑器,调试器,分析器)一样好?我读过关于Spyder的好东西,但是它有一个分析器吗?

  2. 在MATLAB中更改路径上的函数时,会自动重新加载.更改库时是否必须手动重新导入库,还是可以自动完成?这是一件小事,但实际上大大提高了我的工作效率.

Chi*_*chi 19

IDE:不会.虽然我听说过Wing IDE的好东西,但是Python IDE远没有MATLAB那么好或成熟.一般来说,我发现IDE对于Python开发来说总是过度杀伤,并且发现使用设置良好的文本编辑器(在我的情况下为vim)和单独的可视化调试器(WinPDB),我的工作效率更高.

更改功能:使用reload()内置功能进行更改后,必须重新加载模块.

import foo
#now you've changed foo.py and want to reload it
foo = reload(foo)
Run Code Online (Sandbox Code Playgroud)

我已将自己从MATLAB切换到Python,因为我发现Python在复杂性方面做得更好,即我发现在Python中编写,调试和维护复杂代码更容易.其中一个原因是Python是一种通用语言,而不是专业的矩阵操作语言.因此,像字符串,非数值数组和(关键)关联数组(或映射或字典)这样的实体是Python中的第一类构造,类也是如此.

关于功能,使用NumPy,SciPy和Matplotlib,您几乎拥有MATLAB提供的所有功能,以及您需要购买单独工具箱的大量功能.

  • PyCharm很棒,我不使用Matlab所以我无法比较这两个但是你试过PyCharm吗? (9认同)
  • 我怀疑Spyder比Wing更好地取代了. (4认同)
  • 对我上次评论的更正,vim比所有这些评论都要好得多.PyCharm擅长重构方法. (2认同)

Ian*_*son 12

我在Python(x,y)发行版中使用Spyder IDE已经很好了.我是Matlab的长期用户,已经知道Python存在了10年左右,但只是因为我安装了Python(x,y),我才开始经常使用Python.


Jos*_*del 8

您可能还想查看以下主题中的一些答案,尽管它们没有解决您的两个主要问题:

我应该切换到Python吗?

我也是Matlab的完全转换:

  1. 我还没有使用功能齐全的Python IDE,但在IPython中与Matplotlib,Numpy,Scipy等结合使用得很好.我实际上使用的是Enthough Python Distribution,它预装了我需要的大多数科学/定量软件包.我也听说过关于Python(x,y)和Sage的好东西

  2. 也许其他IDE处理这个,但在IPython中我使用autoreload工作得相当好.

正如其他人所提到的那样,由于数字/定量库来自Python而不是顶层语言的数字库,因此您拥有令人难以置信的灵活性,而Matlab则没有.Python社区,特别是数字/定量领域,真的非常棒.

  • @SCFrench(对你的雇主没有冒犯 - Matlab在研究生期间很好地为我服务),但Python做得更好,因为它是一个成熟的开源编程语言恕我直言(1)OOP - 我没有使用最新的Matlab化身,但我使用Matlab时的实现还有很多不足之处.(2)字符串处理(3)在任何平台/机器上自由运行/分发 - 这对我来说是最大的灵活性问题.这是一个部分列表,我承认Matlab具有很强的能力并具有一些不错的品质,但我合作的项目让我成为了一个转换. (4认同)

小智 5

我已经在工程领域工作了一段时间,我一直使用MATLAB进行高复杂度的数学计算.我从未真正遇到过任何重大问题,但我对它也没有超级热情.几个月前,我发现我将成为一个数值方法类的TA,并且它将使用Python进行教学,所以我必须学习这门语言.我最初认为额外的工作原来是一个很棒的爱好.我甚至无法开始描述MATLAB与Python相比有多糟糕!过去常常带我一整天在Matlab中编写代码只花了几个小时用Python编写.我的代码看起来也更具吸引力.Python的性能和灵活性让我感到惊讶.使用Python,我可以在MATLAB中做任何我曾经做过的事情,我可以做得更好.

如果有人在考虑转换,我建议你这样做.它让我的生活变得更轻松.我将引用"计算科学的Python脚本",因为他们比我更好地描述了Python在MATLAB上的优点:

  • python编程语言更强大
  • python环境是完全开放的,可以与外部工具集成,
  • 一个包含大量函数和类的完整工具箱/模块可以包含在一个文件中(与一堆M文件相比),
  • 将函数作为函数的参数传递更简单,
  • 嵌套的异构数据结构易于构建和使用,
  • 面向对象编程更方便,
  • 连接C,C++和fortran代码得到更好的支持,因此更简单,
  • 标量函数在更大程度上使用数组参数(无需修改算术运算符),
  • 源是免费的,可在更多平台上运行.