数据科学中R VS Python:获胜者是...

Norm Matloff
是加州大学戴维斯分校的计算机科学教授,他针对数据科学界常年争论的要点,作了一篇关于
R 和 Python 的对比分析。

数据科学中R VS Python:获胜者是…

在”最佳”数据科学工具的比赛中,R和Python都有自己的优缺点.对二者的选择取决于使用背景,学习花费和其他常用工具的需要

Martijn Theuwissen发表于DataCamp.

在DataCamp,学生经常问我们他们日常数据分析任务使用R或Python。虽然我们主要是提供交互式R教程,我们总是回答这个问题取决于他们所面对的数据分析挑战的类型。
R和Python都是流行的统计编程语言.R的功能由统计学家开发(想想R强大的数据可视化能力),Python常常被称赞为易于理解的语法.

本文中,我们重点介绍R和Python的不同,以及二者如何在数据科学和统计世界中占有位置的.如果你更喜欢视觉展现,确保检查出相应的信息图表”数据科学的战争:R
vs Python“.

在分析开始之前,Matloff 先抛出自己可能带有的潜在偏见:他写过 4 本与 R
相关的书,在 useR! 和其他 R 的会议上做过演讲,并且目前担任 R
期刊的主编。但同时他也用 Python 敲过多年代码。Matloff
希望自己的分析能够被认为是公平且有帮助的。

R的介绍

Ross Ihaka 和 Robert Gentleman
1995年创建开源语言R作为S编程语言的实现.其目的是开发一个提供更好更人性化数学据分析,统计和图形模型的语言.最初,R主要是在学术和研究中使用,最近其余也开始使用R.这使得R成为全球发展最快的统计语言.

R的主要优势的其强大的社区,通过邮件列表,用户贡献文档和一个非常活跃的Stack
Overflow小组提供支持.还有CRAN,一个用户可以轻松贡献R包的巨大资源库.这些软件包是一个R函数和数据的集合,可以马上访问最新技术和功能,不需要从头开始开发.

最后,如果你是一个有经验的程序员,学习R可能并不难.然而作为一个初学者,你可能会感觉到非常纠结.幸运的是,有许多你可以咨询的当下的学习资源.

接着,这位专业的计算机科学家和统计学家从以下几方面对 R 和 Python
做出了对比:

Python的介绍

Python是由Guido van Rossum
1991年创建,强调效率和代码的可读性。希望深入的数据分析或应用统计技术的程序员一些Python用于统计的主要用户。

你越接近在工程环境中工作,越有可能更喜欢Python。它是一种灵活的语言,并让其专注于可读性和简单性,它的学习曲线是比较低的。

与R类似,Python同样有包。PyPI是Python包的索引,由用户贡献的库组成。就像R,Python有一个伟大的社区,但它有点分散,因为它是一个通用的语言。然而,Python中数据科学正在迅速声称在Python世界中更占优势的地位:预期正在成长,更具创新性的科学数据的应用程序将在这里看到自己的起源。

优雅

Python 明显胜出。

当然这是主观的。但是在不同编程语言的对比之下,Python
大大减少了括号的使用:

if x > y: 
   z = 5
   w = 8

vs.

if (x > y)
{ 
   z = 5
   w = 8
}

Python 很时尚!

R和Python:通用量

在网络上,你可以找到许多比较R和Python使用和普及的数量。虽然这些数字往往告诉我们这两种语言是在计算机科学的整个生态系统发展的很好,这很难横向对比。造成这种情况的主要原因是,你只会在数据科学环境发现R;而另一方面,Python作为一种通用语言被广泛应用于许多领域,如网络开发。这往往偏向有利于Python中的排名结果,而结果是有些负面影响。
澳门新葡亰游戏网址 1

学习曲线

R 在这一场赢得巨大胜利。

作为一名教育工作者,Matloff 对这一点尤其感兴趣。

若使用 Python 做数据科学,必须学习很多不在基础 Python 中的材料,例如
NumPy、Pandas 和 matplotlib。

相比之下,矩阵类型和基本图形已经内置于基础
R,新手可以在几分钟内完成简单的数据分析。

即使对于精通系统的人来说,Python 库也很难配置,而大多数 R
软件包都是开箱即用的。

什么时候,如何使用R?

澳门新葡亰游戏网址,R主要用于当数据分析任务需要各个服务器独立计算或分析。探索性的工作非常棒,对于几乎任何类型的数据分析得心应手,因为大量的包和容易使用的测试,经常为你提供必要的工具,快速启动和运行.
R甚至可以是大数据解决方案的一部分。

当开始使用R,一个良好的第一步骤是安装神奇的 IDE
RStudio。一旦做到这一点,我们建议您看看下面的流行的包:

dplyr,plyr和data.table轻松地操纵包,  
stringr操作字符串,
zoo处理定期和不定期的时间序列,
ggvis,lattice,和GGPLOT2可视化数据,
caret 机器学习

可用的数据科学库

R 轻微取胜。

CRAN 拥有超过 14,000
个包。PyPI 的包则多于 183,000
个,不过在数据科学方面看起来似乎比较薄弱。

Matloff 举了一个例子:他曾经需要代码来快速计算给定数据点的最近相邻,在
CRAN 中能够立即找到不止一个包来执行此操作。而在 PyPi
中粗略搜索后空手而归。

他还指出在 PyPI 中进行以下搜索没有任何结果:EM
算法;对数线性模型;泊松回归;工具变量;空间数据;整体错误率等等。

“这并不是说这些东西不存在 Python 库。只是在 PyPI 中不容易找到它们,而在
CRAN 中很容易找到。”

事实上,R 具有规范的封装结构是一个很大的优势。
安装新软件包时,确切地知道会出现什么。 类似地,R 的泛型函数对于 R
来说也是一大的优势。当使用新的包时,人们知道自己可以使用
print()、plot()、summary() 等,所有这些都构成了包的“通用语言”。

什么时候,如何使用Python?

当你的数据分析任务需要整合Web应用程序,或者如果统计代码需要纳入生产数据库时,可以使用Python。作为一个完全成熟的编程语言,它是实现生产使用算法一个伟大的工具。

而过去Python包进行数据分析不成熟是一个问题,多年来这已经显著改善。请确保安装NumPy
/SciPy的(科学计算)和pandas
(数据处理),以使Python可用于数据分析。也看看matplotlib制作图形和scikit-learn用于机器学习。

不像R,Python有没有明确的“最优”IDE。我们建议你使用Spyder,IPython
Notebook 和Rodeo ,看看哪一个最适合您的需求。

机器学习

Python 略微胜出。

R vs. Python 辩论主要是统计与 CS 的争论,由于神经网络的大多数研究来自
CS,因此 NN(Neural Network,神经网络) 的可用软件主要是 Python。
RStudio 在开发 Keras 实现方面做了一些出色的工作,但目前为止,R
在这个领域受到限制。

另一方面,随机森林研究(random forest
research)主要由统计界进行,在这个领域 R 更具优越性。R
还具有优异的梯度增强封装。

这里 Python 略胜一筹,因为对很多人来说,机器学习就意味着神经网络。

R和Python:数据科学的数量

如果你看一下最近的民意调查,重点用于数据分析的编程语言,R往往是明显的赢家。如果您特别注重Python和R数据分析领域,会得到一个类似的模式。
澳门新葡亰游戏网址 2
尽管上述数字,有越来越多的人从R转向Python。此外,有越来越多人同时使用二者。这也正符合我们推荐给学生。

如果你打算开始数据科学的职业生涯,最好熟练两种语言。招聘趋势显示这两个技能的需求不断增加,工资又远高于平均水平。

统计正确性

R 赢得大胜。

Matloff 表示 “R 是由统计学家为统计学家编写的”。他发现“那些主要使用
Python 进行机器学习的人往往对其中的统计问题缺乏了解,甚至不屑一顾”。

R:优点和缺点

Pro :一张图片胜过比千言万语

可视数据通常比单独的原始数据更易于理解。
R和可视化是一个完美的搭配。一些必看的可视化包是GGPLOT2,ggvis,googleVis和rCharts。

Pro:R生态系统

R有丰富的生态系统,其中包括前沿的包和活跃的社区。包可CRAN,Bioconductor和Github上得到。您可以在Rdocumentation搜索所有的包。

Pro:数据科学中用得上R

R由统计学家为统计专家开发。他们可以通过R代码和包传达的思想和观念,你不一定需要计算机科学的背景。此外,学术界外的人们越来越多的使用R。

Pro/CON:R很慢

r的开发是为了让统计人员的生活更轻松,而不是你的电脑的使用寿命。虽然R可能运行缓慢是由于写得不好的代码,有多个包来提高的r性能:PQR,renjin
和FastR,Riposte 等等。

CON:R有一个陡峭的学习曲线

R学习曲线很复杂,特别是如果你是来自统计分析的GUI。如果你不熟悉它,即便寻找包可能会非常耗时。

网站地图xml地图