Python与R语言的区别是什么?

165人已阅读 2018-08-20 20:21:33
导读 在数据分析的新人到底应该使用哪个语言,也经常出现诸如“我想学习机器语言,我应该用哪个编程语言”或者“我想快速解决问题,我应该用R还是Python”等这类问题。尽管两个编程语言目前都是数据分析社区的佼佼
java 大数据培训 数据分析挖掘培训 web前端 UI设计 产品经理

新闻详情

2018-08-20 20:21:33

数据

数据分析的新人到底应该使用哪个语言,也经常出现诸如“我想学习机器语言,我应该用哪个编程语言”或者“我想快速解决问题,我应该用R还是Python”等这类问题。尽管两个编程语言目前都是数据分析社区的佼佼者,但是它们仍在为成为数据科学家的首选编程语言而战斗。今天,就让我们从数据科学的角度,一步步比较这两大编程语言。

   1.对阵双方介绍
  Ladies and Ladies and Gentlemen,让我们隆重的介绍今天的对阵双方:R和Python!
  R语言当前版本是2015年12月更新的3.2.3版。Python 2当前版本是2015年12月更新的2.7.11版,Python
  3当前的版本是2015年12月更新的3.5.1版。
  R语言是Ross Ihaka和Robert Gentleman于1995年开发的,作为贝尔实验室S编程语言的一种实现,其开发环境主要由C
  语言,Fortran和R来完成。
  Python的发布年份其实远在R之前。Guido Van
  Rossum于1991年开发完成了Python,并由Python软件基金会(PSF)负责其发展。其开发灵感主要来自C语言和Modula-3,部分来自ABC语言。Python的名字取自喜剧蒙提·派森的飞行马戏团(Monty
  Python’s Flying Circus)。
  从定位角度看,R致力于提供更好的,对用户友好的数据分析、统计分析和绘图模型;而Python则强调生产效率和代码的可读性。
  双方的用户群也有一定的差异。
  R主要用于学术和研究领域,如今正在快速拓展其企业市场的运用。Python的使用者,是那些想深入钻研数据分析或者应用统计技术的程序员,以及向数据科学寻求帮护的开发者。
  用一句话总结:“越接近统计研究和数据分析的人,越倾向于R;越接近工程开发和工程环境的人,越倾向于Python”。
  R和Python都得到大量的社区支持,*括邮件列表Mailing
  Lists、用户贡献的文档、以及Stackoverflow网站。此外,R还可以从研究人员、数据科学家、统计学家和数量分析专家那里得到更多的支持;而Python则从开发者和程序员那里得到的支持。
  从实用性来讲,R通过几行代码就可以写出统计模型,尽管R有样式表,但并不是每个人都使用它们,可以用若干种方式写出同样的功能。在Python中写代码和调试代码则更容易一些,主要是因为它的“优美”语法。但是代码的缩进会影响它的意思。并且,在Python中,永远只有一种方式来写同样的功能。
  在灵活性方面,在R中使用复杂的公式很容易。各种各样的统计检验和统计模型都是现成的并且容易使用;相比R,Python在完成以前没有做过的新奇的事情上,很灵活,开发人员也会用它写网站或其它应用的脚本。
  关于易学习性,开始学习R时有一个陡峭的学习曲线,一旦了解了最基本知识,就能很容易地学习更高级的知识。因此,对于有经验的程序员,R并不难。
  由于Python看重可读性和易用性,使得它的学习曲线相对比较低并且平缓。因此,对于初级程序员,Python
  被认为是一个很好的编程语言。
  两者都有自己的代码库。CRAN(The Comprehensive R ArchiveNetwork)是一个很大的R*库,用户很容易为其贡献代码。R*是一个*含R函数、数据和编译代码的集合,R*在R中用一行代码即可安装。PyPi(Python Package Index)是Python软件库,用户可以为PyPi贡献代码,但实践起来有点困难。
  计算机科学教授Norm Matloff
  曾说过,“Python并未建立起一个能与CRAN媲美的巨大的代码库,R在这方面领先巨大。但是,统计学并不是Python的中心任务。
  其实R与Python并不是完全孤立的,在R中用户可以通过rPython*运行Python代码,从Python传递或获取数据,调用Python函数或者方法。而在Python中也可以使用RPy2*运行R代码,这提供了一个从Python到R的底层接口。
  以上,从定性的角度进行了比较。现在,看看双方的定量数据。
  先看人气排名,下图左边为2013-2015年2月R和Python人气比较(Tiobe指标),右边为Redmonk排名,它比较了Github和Stackoverflow上编程语言的相对性能。
  再看*和薪资,2014 Dice
  Tech薪金调查显示,具有高薪技能和丰富经验的R使用者的平均工资为115,531美元,而Python则为94,139美元。
 2.数据分析战场
  首先是用途。
  R的主要应用场景是,当数据分析任务需要独立运算,或者需要在单个服务器上分析;Python的一般应用场景是,数据分析任务需要与网页应用整合,或者当统计代码需要并入成品数据库。
  按任务类型划分,做探索性研究时,R语言很适合初学者。几行代码便可写出统计模型;而作为一个完整成熟的程序语言,Python是为产品使用进行算法执行的一个工具。
  数据处理能力上,使用R进行数据分析很容易上手,因为它具有庞大数量的*、方便使用的检验以及在使用公式方面的优势。做基本数据分析时,R语言更方便,不需要额外安装*,大的数据库需要使用类似data.table和dplyr*。过去,Python数据分析*的幼年期曾是个问题,但是现在已经得到很大的改善,用Python进行数据分析时,你需要使用NumPy、Pandas和其它的程序*。
  如何上手也是比拼的一个方面。R的集成开发环境(IDE)可以选择RStudio。R最受欢迎的程序*有:dply、plyr和data.table(易于操作数据),stringr(易于操作字符串),zoo(处理规则和不规则时间序列),ggvis、lattice和ggplot2(数据可视化),caret(机器学习)。
  Python的集成开发环境(IDE)有很多,其中Spyder和IPython
  Notebook最受欢迎,还有PyCharm等。建议初学者查看Rodeo(被称为“Python到数据科学IDE”)。Python最受欢迎的程序*有:pandas
  (易于操作数据),SciPy/NumPy(科学计算),sckikit-learn(机器学习),matplotlib(用于作图),statsmodels(数据探索、统计模型估计、统计检验和单元测试)。
  关于技术支持,使用R进行数据分析有很多技术支持,*括Stackoverflow、Rdocumentation,(R文档整合)和R-help
  邮件列表。Python的数据分析问题可以通过以下方式获得支持:Stackoverflow和邮件列表。邮件列表*括pydata(关于使用Python进行数据分析和Pandas*)、pystatsmodels
  (Statsmodels和pandas*的问题)、numpy-discussion(Numpy*的问题)和sci-pyuser(大部分是SciPy或者科学问题)
  同样,定性对比后再看看R和Python的量化战争!从整体数据来看,在做数据分析时使用R的人数要多于使用Python(下图左:2014用于数据分析的程序语言)。
上一篇: MySQL的常用结构 下一篇: 你知道什么深度架构吗?

相关文章

推荐课程

查看全部课程
济南海文国际教育

济南海文国际教育

历下校区

查看全部校区 进入官方主页