Py学习  »  Python

互撕 | R语言 v.s. Python “互骂”

EasyCareer • 5 年前 • 520 次点击  

Easy Career 易职

北美最专业的求职平台

独家岗位招聘 · 优质课程体验


关注


如果你是数据分析领域的新兵,那么你一定很难抉择——在进行数据分析时,到底应该使用哪个语言,R还是Python?


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


R语言作为统计界第一语言(软件),很多时候与我们号称分析界第一语言的Python老是被人拿起来对比,所以今天专门做了一个表格,简介一下R语言与Python语言的对比情况。





Round

1

对阵双方介绍


首先还是我Python神图压镇:



(图片来源于网络)


Python的发布年份其实远在R之前。Guido Van Rossum1991年开发完成了Python,并由Python软件基金会(PSF)负责其发展。其开发灵感主要来自C语言和Modula-3,部分来自ABC语言。Python的名字取自喜剧蒙提·派森的飞行马戏团(Monty Python's Flying Circus


再介绍一下R语言吧:
有个小段子,说为什么要叫R语言呢?就是因为两位创始人的名字,都是以"R"开头的,所以,干脆一拍即合,就叫R语言吧…… (就是这么随性~)R语言是Ross IhakaRobert Gentleman1995年开发的,作为贝尔实验室S编程语言的一种实现,其开发环境主要由C语言,FortranR来完成。




(图片来源于网络)


咳咳!敲桌板的纯干货来了!!!



Round

2

综合面分析



定位角度看

R致力于提供更好的,对用户友好的数据分析、统计分析和绘图模型;R主要用于学术和研究领域,如今正在快速拓展其企业市场的运用。

Python则强调生产效率和代码的可读性。双方的用户群也有一定的差异。Python的使用者,是那些想深入钻研数据分析或者应用统计技术的程序员,以及向数据科学寻求帮护的开发者。

用一句话总结:“越接近统计研究跟数据分析人,越倾向R;越接近工程开发工程环境的人,越倾向Python”。


实用性来讲

R通过几行代码就可以写出统计模型,尽管R有样式表,但并不是每个人都使用它们,可以用若干种方式写出同样的功能;

在Python中写代码和调试代码则更容易一些,主要是因为它的“优美”语法。但是代码的缩进会影响它的意思。并且,在Python中,永远只有一种方式来写同样的功能。


灵活性方面

在R中使用复杂的公式很容易。各种各样的统计检验和统计模型都是现成的并且容易使用;

相比R,Python在完成以前没有做过的新奇的事情上,很灵活,开发人员也会用它写网站或其它应用的脚本。





Round

3

总决选:特性分析


通过分析是不是很多内容都似曾相识呢?


没错,相信很多小伙伴都发现了,R语言怎么和Python的特性这么相似捏?


其实R也有很多自己特性,下面是它最显著的几个特性:


1、命令模式

Python虽然也支持命令模式,但是相对来说,更偏向于流程控制语句,也就是可以写一堆语句,然后执行。R本身基本上不需要用到流程控制(当然,它也支持流程控制)。


2、交互性

这样是命令模式的一个特点,敲回车,出结果。但是又不像SPSS那种用鼠标扎针的交互方式(在键盘上运指如飞逼格瞬间提升很多……好莱坞大片里面,高手黑客都是不用鼠标的,当然,这样很合理,SSH或者Telent到远程服务器上,怎么鼠标?)


3、统计学特性

……也是R语言最大的特点,好吧R语言与其他所有计算机语言最大的本质区别,就是它是一门统计学家发明的语言(其他语言,基本上都是码农发明的,当然,也有数学家发明的),那么就有很多神奇特点。


比如:赋值的时候,不用等号(=),用的是指向(

这种语句,就需要 a < (-5)  这样写。

    

比如对象下面的属性,不用点(.),而是用刀乐($)。当然,点也能用,但是又带来各种问题。

比如R语言的变量命名法则不用遵循匈牙利法则……可以用中文啊有木有:



最反人类(反(程序)猿类)的设计,就是它的数组下标从1开始啊有木有!!所有的程序语言都是从0开始的有木有啊!!

    

最后就是内存问题


R语言被要求把所有数据都加载到内存里面去进行运行……OMG!!现在动辄GB没事就TB就数据,作死要不要做得这么彻底?(当然,现在Spark也支持R了……这是一个好消息,大家都是内存计算,难兄难弟啊)



为了方便大家理解,

贴出我Python大法与R大法的对比图:



(图片来源于网络)


引用Python程序猿经常说的一句话:“别看我们运行慢,但是我们写得快啊”……但是这个对比R就没优势了,R的代码量比Python更少……当然,是比R能够完成的任务的情况下。


实际上这种对比并没有太大的意义,比较硬要说R是一种语言,还不如说它更像是一个分析工具,是一个软件……而Python是一个支持大型软件工程项目的开发语言(不信,你用R写个web网站我看看~……Python就可以。

那么赢家是

.

.

.

.

.

.


最后的结果当然是是平局啊喂!


哪个工具更适合,

取决于你如何去挑选一个最适合你需要的程序语言咯。


首先要问问自己:


1.你要解决什么样的问题

2.你学习一门程序语言的成本?

3.在你的领域最常用的工具是什么?


要知道学习一个能更好地解决问题的新系统会花费时间,

但依旧使用你熟悉的系统并不能解决所有的问题。





近期热点文章



网址:www.ezcareer.shop

Excel&VBA | R | CFA | CSC | 风险管理

更多职业技能证书培训 | VIP私人定制

干货福利 | 职场攻略 | 求职社群 | 职位直推



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/P5QQilqMit
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/13462
 
520 次点击