Python与R、Matlab的对比
作为一枚程序员,想要研究Python编程语言与数学学习(教学)的结合,就不能不了解以及比对一下其他数学学习与应用的解决方案,比如R语言、Matlab等数学软件。经过广泛的搜索了解了一下国外的反馈与趋势之后,最终的结论就是Python确实是未来。
Python与R语言的对比
Python与R语言在数据分析领域的对比,DataCamp上有一篇引用率非常高的文章,数据分析选择R还是Python,不过这篇文章是2015年写的,我们先大致总结一下文章内容:
- R主要用于学术与研究,也开始迅速进入企业市场,越是接近统计学、研究、数据科学,你就会越偏爱R,而Python主要用于程序员想进入数据分析领域、掌握统计技能,以及其他开发人员进入数据科学领域。如果你的工作越接近工程环境,你会越偏爱Python。
- R的社区生态主要是研究员,数据科学家、统计学家和量化研究员,而Python主要是程序员和开发者。
- R学习门槛比较高,但是当你掌握了基础之后就学起来比较容易,R对程序员来说不难;Python可读性强,入门非常容易,被公认为非常不错的入门编程语言。
- 在2015年前的Tiobe编程语言的排名上Python排名在第4或第5,R排在第17到13。而据2015数据分析领域,用R的研究员占58%,Python占42%,两者都用的占23.45%;
- 在2013年,R转Python的有26%,Python转R的有18%,而新进入数据分析领域的有44%的人选择R,23%的人选择Python.
从2015年之前的情况看来,正如作者所说,R和Python在数据分析领域确实平分秋色,难分伯仲,从数据中我们可以看出,虽然Python相比R更流行,在编程方面更有优势,但是在数据科学领域,选择使用R的人更多。
但是翻到2018年的文章里看到2016、2017年的数据,情况下发生了逆转。在数据科学领域,2016年有34%的人选择Python,42%的人选择R,而到了2017年41%的人选择Python,36%的人选择R。在2017年的调查统计里数据科学家和工程师最流行的编程语言分别是JavaScript(58.7%,令人惊讶啊,可能与数据可视化有关?)、SQL(58%)、Python(45%),而R(11.2%),Python在商业领域领域比较火,而R在学术和研究领域比较多,所以不那么流行吧。而在最近的Tiobe的排行榜上,与数据科学相关的编程语言Python、R、SQL、Matlab等涨幅都比较大,Python在整个编程语言的流行度也由2014年的2%猛增到2019年8.26%,跃居第3,成为2018年年度语言。
Python、R、Scala在数据科学领域的流行包
Python与Matlab的对比
虽然不是学数学的,但是Matlab的大名可是如雷贯耳,与数学相关专业、相关行业的学生、工程师们基本一定会使用到它。MathWorks公司跟设计公司Adobe、三维软件公司Autodesk一样都是极其硬核的存在,旗下的产品不仅是学习必备,而且是工程(比工作听起来霸气)必备。我个人对Matlab的了解极其有限,Python与Matlab的对比我也只能像一个产品经理去广泛查阅专业意见来权衡利弊。我所得出的结论也只是基于掌握了Python的前提,断不敢用偏颇的立场去亵渎神器。
我们来看一下美国相关专业人员对两者的对比,只是粗略而不精准的翻译一下。
我是一名工程师,之前长期使用Matlab来处理复杂的数学运算都没有遇到什么大的问题,就在几个月前因为岗位需要学习了Python之后,我才意识到Matlab相比Python是多么的糟糕。之前需要我用Matlab花一整天处理的问题用Python只需数小时,Python的表现、流畅度让我惊讶。而且使用Python我可以做之前用Matlab做的任何事情,而且更优秀。因此我非常建议Matlab使用者转向Python。Python编程语言比Matlab更强大,能够联合非常多的外部工具模块,只需一个文件就可以调用非常多的库、函数、类,语法也更加简单,面向对象开发也更加方便,还能非常方便地调用C、C++、Fortran。Python是免费的,而且可以运行在更多平台上面。 ---Stackoverflow某工程师
经过调查Matlab与Python的宿命之争在2011年就开始了,而且网上Matlab与Python的对比文章、评论非常之多。Matlab官方在2013年就开始拿Matlab和Python进行对比官方对比最是致命:MATLAB OR Python中文,年代越近,由Matlab全面转向Python的建议就越多,更多人直言Python是未来的编程语言,在Python与Matlab的选择之上,看了非常多的建议,已成一边倒的趋势。
有人列出了Python相对于Matlab的8大优势,我只粗略翻译一下这8大优势,详情大家可以去查看原文:
- Python的代码相比于Matlab更简洁,可读性更强;
- 和其他编程一样,Python都是从0开始计数,而Matlab不是;
- Python可以更好的支持哈希字典;
- 面向对象开发让Python更简单、更优雅;
- Python免费且开源;
- Python一个文件、模块里可以包含非常多的函数;
- Python支持import声明;
- Python支持更多图像处理的包和工具集
在PyCon 2017年的大会上,多位大佬提出科学家应该全面拥抱Python,在2015年开始Python在NASA的地位就开始遥遥领先IDL、Matlab和Fortran。由于这里我们只讨论Python和Matlab在数学上的对比,至于科学家转型Python的优势的细节,大家可以看DataCamp的雄文。
小结
其实在写这篇文章之前,我就问过一下包括清华在内的学校以及一些数学专业的学生,Matlab和R还是占主流,但是经过一番调查发现在美国Python在数据科学、数学等方面好像渐成压倒性的优势。这也激励我要把用Python学数学的专栏给写下去。