“社会科学中的数据可视化”第107篇推送
大数据文摘授权转载
来源|DataCamp
编译|于婷婷 魏子敏 康欣
小
如果你是数据分析领域的新兵,那么你一定面临着艰难的抉择——在进行数据分析时,到底应该使用哪种语言:R还是Python?在网络上,也经常出现诸如此类问题:“我想学习机器语言,我应该用哪种编程语言”或者“我想快速解决问题,我应该用R还是Python”等。尽管两种编程语言目前都是数据分析社区的佼佼者,但它们仍在为成为数据科学家的首选编程语言而战斗。今天,就让我们从数据科学的角度,一步步比较这两大编程语言。
#1 对阵双方介绍
Ladies and Gentlemen,让我们隆重的介绍今天的对阵双方:R和Python!R语言当前版本是2015年6月更新的3.2.1版。Python 2当前版本是2015年5月更新的2.7.10版,Python 3当前的版本是2015年2月更新的3.4.3版。
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并不难。建议R学习者查看DataCamp上的练习和教程。
由于Python看重可读性和易用性,使得它的学习曲线相对比较低且平缓。因此,对于初级程序员而言,Python 被认为是一个很好的编程语言。对于Python学习者的建议是,尝试用《笨办法学Python》来学习,同时看视频做练习。
两者都有自己的代码库。CRAN(The Comprehensive R Archive Network)是一个很大的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和其它程序包。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#4 那么赢家是……
最后的结果是平局!哪个工具更适合,取决于你这个数据科学家如何去挑选一个最适合你需要的程序语言。下面的问题可以指导你做出决定。
1.你要解决什么样的问题
2.你学习一门程序语言的成本?学习一个能更好地解决问题的新系统会花费时间,但依旧使用你熟悉的系统并不能解决你要解决的问题。
3.在你的领域最常用的工具是什么?
在你的领域中还有什么可用的工具,它们和那些常用工具有什么关系?
短片赠送:《一头抑郁的鲸鱼》
原文来自:DataCamp和大数据文摘,本文部分文字和图片进行了处理。短片来自腾讯视频。原文请点击左下“阅读原文”。
http://mp.weixin.qq.com/s?__biz=MzA4NTAyMjQ2Mg==&mid=207842280&idx=1&sn=f04abee56e46f8e357a9850593bdaa7f#rd