乐趣区

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 学数学的专栏给写下去。

退出移动版