数据科学入门-选Python还是R(下)

循环

在此之前让我们想想,如何比较Python与R。你真的想在R语言写很多循环吗?毕竟这两种语言的设计意图不太相同。

Python为0.000037秒,R为0.00158秒

包括加载时间和在命令行上运行:R需要0.238秒,Python需要0.147秒。强调,这并不是科学严谨的测试。

测试证明,Python的运行速度明显加快。通常这并没有太大影响。

除了运行速度外,对于数据科学家而言哪种性能更重要?两种语言之所以受欢迎是因为它们能被用作命令语言。例如,在使用Python时大多时候我们都很依赖Pandas。这涉及到每种语言中模块和库,以及其执行方式。

第三方支持

Python有PyPI,R语言有CRAN,两者都有Anaconda。

CRAN使用内置的install.packages命令。目前,CRAN上有大约1.2万个包。其中超过1/2的包都能用于数据科学。

PyPi中包的数量超过前者的10倍,约有14.1万个包。专门用于科学工程的有3700个。其中有些也可以用于科学,但没有被标记。

在两者中都有重复的情况。当搜索“随机森林”时,PyPi中可以得到170个项目,但这些包并不相同。

尽管Python包的数量是R的10倍,但数据科学相关的包的数量大致相同。

运行速度

比较DataFrames和Pandas更有意义。

我们进行了一项实验:比较针对复杂探索任务的执行时间,结果如下:

在大多数任务中Python运行速度更快。

来源:

http://nbviewer.jupyter.org/gist/brianray/4ce15234e6ac2975b335c8d90a4b6882

可以看到,Python + Pandas比原生的R语言DataFrames更快。注意,这并不意味着Python运行更快,Pandas 是基于Numpy用C语言编写的。

可视化

这里将ggplot2与matplotlib进行比较。

matplotlib是由John D. Hunter编写的,他是我在Python社区中最敬重的人之一,他也是教会我使用Python的人。

Matplotlib虽然不易学习但能进行定制和扩展。ggplot难以进行定制,有些人认为它更难学。

如果你喜欢漂亮的图表,而且无需自定义,那么R是不错的选择。如果你要做更多的事情,那么Matplotlib甚至交互式散景都不错。同样,R的ShinnyR能够增加交互性。

是否能同时使用

可能你会问,为什么不能同时使用Python和R语言?

以下情况你可以同时使用这两种语言:

· 公司或组织允许;

· 两种都能在你的编程环境中轻松设置和维护;

· 你的代码不需要进入另一个系统;

· 不会给合作的人带来麻烦和困扰。

一起使用两种语言的方法是:

· Python提供给R的包:如rpy2、pyRserve、Rpython等;

· R也有相对的包:rPython、PythonInR、reticulate、rJython,SnakeCharmR、XRPython

· 使用Jupyter,同时使用两者,例子如下:

之后可以传递pandas的数据框,接着通过rpy2自动转换为R的数据框,并用“-i df”转换:

来源:

http://nbviewer.jupyter.org/gist/brianray/734bd54f468d9a6db9171b2cfc98405a

预测

Kaggle上有人对开发者使用R还是Python写了一个Kernel。他根据数据发现以下有趣的结果:

· 如果你打算明年转向Linux,则更可能是Python用户;

· 如果你研究统计数据,则更可能使用R;如果研究计算机科学,则更可能使用Python;

· 如果你还年轻(18-24岁),则更可能是Python用户;

· 如果你参加编程比赛,则更可能是Python用户;

· 如果你明年想使用Android,则更可能是Python用户;

· 如果你想在明年学习SQL,则更可能是R用户;

· 如果你使用MS office,则更可能是R用户;

· 如果你想在明年使用Rasperry Pi,则更可能是Python用户;

· 如果你是全日制学生,则更可能是Python用户;

· 如果你使用的敏捷方法(Agile methodology),则更可能是Python用户;

· 如果对待人工智能,比起兴奋你更持担心态度,则更可能是R用户。

企业和个人偏好

当我与Googler和Stack Overflow的大神级人物Alex Martelli交流时,他向我解释了为什么Google最开始只官方支持少数几种语言。即使是在Google相对开发的环境中,也存在一些限制和偏好,其他企业也是如此。

除了企业偏好,企业中第一个使用某种语言的人也会起到决定性作用。第一个在德勤使用R的人他目前仍在公司工作,目前担任首席数据科学家。我的建议是,选择你喜欢的语言,热爱你选择的语言,起到领导作用,并热爱你的事业。

当你在研究某些重要的内容时,犯错是难以避免的。然而,每个精心设计的数据科学项目都为数据科学家留有一些空间,让他们进行实验和学习。重要的是保持开放的心态,拥抱多样性。

最后就我个人而言,我主要使用Python,之后我期待学习更多R的内容。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180814B0MGF000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券