专栏首页数据分析1480我的5年Python7年R,述说她们的差异在哪里?

我的5年Python7年R,述说她们的差异在哪里?

前言

首次接触R语言是在2012年读研的时候,有一门课程是统计分析与R语言,清晰地记得期末考试时,由于把答案给同学抄,最终落了个重考的后果(重考92分)。那个时候真的非常喜欢R语言,因为这种面向对象的语言很简单、很灵活,而且功能也非常强大(如果你接触过SAS,也许也会有这样的感想)。

对于Python的接触相对晚了两年,2014年走上实习岗位时,主管让我研究推荐系统方面的实操,当时看的第一本相关书籍就是中国科学院博士项亮的《推荐系统实践》一书,而书内涉及的代码就是Python。为了工作,为了让推荐系统可以落地,便开始了Python的学习和研究,一晃5年过去了。

自己也曾写过两者在编程和功能上的差异,但都只是基于具体应用上的对比,并没有在全局的角度对比两者的异同,例如这些文章:

从零开始学Python【6】--pandas(数据框部分01)

从零开始学Python【7】--pandas(数据框部分02)

从零开始学Python【8】--pandas(数据框部分03)

从零开始学Python【9】--pandas(数据框部分04)

从零开始学Python【22】--线性回归诊断(第一部分)

从零开始学Python【23】--线性回归诊断(第二部分)

从零开始学Python【25】--岭回归及LASSO回归(实战部分)

正好就在前两天有网友在公众号留言,希望我分享一篇文章,来描述R语言和Python的差异。那么今天就跟各位网友聊一聊这个话题。

编程体验

哇,两门语言真的太赞了,几乎可以解决数据分析或挖掘过程中的所有问题(例如数据搜集、清洗、整合、探索、可视化、建模、评估、展现等)。她们之所以功能,是因为前辈们已经打造了很多成熟的第三方包,对于工具的使用者,大多数情况下只需调包跑数据即可。截止到本文的编写,R语言官网公布14,553个包,PyPI官网公布188,135个项目(即模块)

两门语言的编程语法也是比较相似的,区别在于R语言更有数学味道,都是函数思维;而Python更有编程的味道,除了有函数、还有“方法”、“类”的巧妙使用。所以初学Python的朋友(非计算机专业)不太容易接受Python的编程思维,而更喜欢拥抱R语言。但当你发现Python的语法特点和技巧后,也许会更爱Python(至少我是这样的)。

功能对比

正如前文所说,R语言和Python几乎可以做数据分析和挖掘中的所有任务,都可以找到对应的第三方包。这里将通过汇总的方式,做一个有关R语言和Python的功能对比,帮助读者有的放矢地学习和掌握各种的第三方包,以及在不同的应用场景下,选择对应的第三方包实现内容的落地。

企业更倾向的她

打开招聘网站,搜索数据分析或挖掘的关键词,会出来很多的岗位,再仔细查看岗位的任职要求,你会发现基本上都需要应聘者掌握1~2门编程语言。如:

所以,不管是R语言还是Python,都非常受企业的欢迎。如果非要从其中抉择出一个更有优势的工具,我会选择Python。因为Python与其他大数据技术融合的更完美,更和谐,这也是为什么近几年Python特别火爆的原因吧。

各自的成长

最后看一看R语言和Python在近几年的成长趋势,也许从中你会有自己的判断和结论。首先对比2019年7月份的TIOBE指数(该指数是编程语言的排名榜):

从排名结果上来看,Python稳居第3,比2018年同期上位一格;但是R语言就没有那么幸运,目前排第20,同比掉了6格。

再来对比R语言和Python的热度指数曲线,如下图所示:

在2014年之前,R语言的热度相对比较平稳,但总体呈上涨趋势;而Python大起大落,成长过程并没有顺风顺水。2014年之后,R语言有了快速的发展,上升幅度非常大,直到2018年遇到了挫折,气势一路下降;Python相对进入平稳期,稳步上升,直到2018年后,出现了突飞猛进的态势。

本文分享自微信公众号 - 数据分析1480(lsxxx2011)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python算法与数据结构-队列(44)

      队列的定义:队列是一种特殊的线性表,只允许在表的头部(front处)进行删除操作,在表的尾部(rear处)进行插入操作的线性数据结构,这种结构就叫做队列。进...

    Se7eN_HOU
  • python 多线程入门 | 示例 | 新手教程

    对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂。所以,这里力图用简单的例子,让你对多线程有个初步的认识。

    马哥Python
  • Appium+python自动化(十一)- 元素定位秘籍助你打通任督二脉 - 下卷(超详解)

      宏哥看你骨骼惊奇,印堂发亮,必是练武之奇才! 按照上一篇的节目预告,这一篇还是继续由宏哥给小伙伴们分享元素定位,是不是按照上一篇的秘籍修炼,是不是感觉到头顶...

    北京-宏哥
  • 深度学习中常用的损失函数loss有哪些?

    这是专栏《AI初识境》的第11篇文章。所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法。

    小草AI
  • keras量化分析之路(1)--DataFrame格式数据

    写在开头: 今天正是开始量化之路,选择keras+tushare这两个好东西

    wust小吴
  • 基于端口的弱口令检测工具--iscan

    亲手打造了一款基于端口的弱口令检测工具,使用python进行编写,主要可以用于渗透测试中常见服务端口弱口令的检测。目前支持以下服务:

    Bypass
  • opencv 9 -- 轮廓 找 和 画

    轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。 轮廓在形状分析和物体的检测和识别中很有用

    wust小吴
  • (数据科学学习手札63)利用pandas读写HDF5文件

      HDF5(Hierarchical Data Formal)是用于存储大规模数值数据的较为理想的存储格式,文件后缀名为h5,存储读取速度非常快,且可在文件内...

    Feffery
  • 当sqlmap跑不出数据怎么办

    你有没有遇到这样的场景,好不容易找到了一个SQL注入点,扔到SqlMap,爆错,怎么也跑不出数据。

    Bypass
  • 基于slim的残差网络

    slim中给出了resnet、vgg卷积网络的快速实现方法,定义的位置为:D:\anaconda\envs\tensorflow\Lib\site-packag...

    于小勇

扫码关注云+社区

领取腾讯云代金券