Python与R:数据科学家思维的战斗

下面是科学家们最喜欢的通用工具与统计员挑选的经过数据磨砺的工具的对比

Python与R:数据科学家思维的战斗
Shutterstock.

老板的老板浏览了服务器场,看到了数据 - Petabytes和Petabytes的数据。这导致了一个结论:该噪音中必须存在信号。在这个数字世界中,必须有聪明的生活 - 一种将所有这些硬盘填补数字填补的策略。

那份工作落在你的办公桌上,你现在必须找到一种方法,在数字“老鼠窝”里翻来翻去,找到一块宝石交给老板。

如何?如果你是一个开发人员,有两个主要的竞争者:R和Python。还有很多其他的解决方案可以帮助处理数据,它们属于商业智能或数据可视化之类的范畴,但它们通常是全服务解决方案。如果他们做了你想要的,你应该选择他们。但如果你想要一些不同的东西,那么,编写自己的代码是唯一的解决方案。当数据被清理、抛光并准备就绪时,全服务工具可以做得很好,但当一切都不太完美时,它们往往会打嗝,甚至呕吐。

Python和R之间的区别很大程度上是哲学上的。一种是由Unix脚本编写人员开发的全服务语言,它恰好被统计人员、大数据迷和社会科学家所采用。另一个是由统计专家、大数据迷和社会科学家设计和构建的数据分析工具。

人群非常相似,但方法却非常不同。一种是具有许多库的通用工具。另一个是专门为大数据分析而设计的。

你应该选择哪一个?下面是一个面对面的比较,让你更容易做出决定。

Python使预处理变得容易

有人说,50%的数据分析是事先清理数据;有人说是99%。不管确切的指标是什么,使用全服务语言清理数据会更好,它可以让您在需要时执行任意任务。Python是一种全服务的命令式语言,所以即使您从未使用过它,也可能熟悉它的结构和方法。添加新功能和新层来分解和清理数据是很容易的。如果这些功能需要本地存储,访问网络服务,或任何计算机程序通常可以完成的任意项,你可以毫不费力地将其包含进来。它只是另一种语言。

r让您用任何东西预处理

是的,Python使预处理变得很容易,但这并不意味着如果需要清理数据就不能使用R。你可以使用任何语言。事实上,在许多情况下,将数据净化例程与分析例程混在一起在结构上是不合理的。最好把它们分开。如果你要把他们分开,为什么不用你喜欢的语言呢?这可能确实是Python,但也可能是Java、C,甚至是汇编代码。或者甚至你想在数据库或其他存储层中预处理数据。R不在乎。

Python有无数的库

Python很流行,公共存储库的统计数据说明了这一点。这Python包索引在提供这方面提供102,199个包装,而且在阅读它时,数字几乎肯定会更大。这是冰山一角,因为代码无处不在,从Github到社会科学网站。PYPI的视图有很多好的Python代码。几乎所有这一切都是开源,可让你的生活更轻松。

r有一个跨国分析的Bazillion图书馆

r也有包裹。这综合R档案网络(CRAN)在本文编写时提供了10033个包,并且与Python一样,这个列表越来越长。这些包只用于一个任务:数据的统计分析。没有用于运行文件系统检查或服务器维护的包,因为R不做这些。虽然可能会有一些错误——就像所有开源库中存在的那样——但大部分代码都是由统计学家编写和审查的。

Python是不断发展的

如果你在法国说“周末”,每个人都能理解。这就是成为一种活的语言的意义。Python正在进化,变得越来越好,就像法语一样。从2.3版跳到3.0版破坏了旧代码,是的,但许多Python爱好者说,这个改变是值得的。一堆活的代码会变得更好,即使它会破坏旧代码。活的语言意味着人们想要使用和改进它。这意味着更多的开放源代码和更多的解决方案。就像Facebook上的政治表情包是我们为民主付出的代价一样,改变标准和破坏代码是使用一种流行的、不断发展的、活的语言的代价。

r静止

说R不变是不公平的。实际上,它是S的变体,具有词法作用域,使大型代码库更简洁。即便如此,许多人仍然能够在R解释器中运行S。Python程序员根本不知道代码库是2.3还是3.0。它只会更熟悉,更不可能破裂。这并不能保证,因为R也有生命,但它的步伐并不大,也不具有革命性。

Python任何语言都可以做的一切

Python是一种由程序员设计的通用语言,可以做任何程序员想做的事情。这和图灵完备性是不一样的。这生命的游戏是图灵完备的,但你不会想用它来写一个函数来计算斐波那契数列。您通常可以使用许多选项来完成某些任务,但Python的设计使其变得容易。Python是为充满大量代码的实际项目而设计的。在项目开始时,当您只需要写几行代码来清理一些微小的细节时,这似乎并不有用。但是,当这几行代码变成了数千行,混乱的代码变成了意大利面条式的代码时,它就变得很重要了。Python是为更大的项目而构建的,最终您可能会需要这些特性。

R擅长统计

R用于统计分析。你桌上的工作是什么?统计分析?看起来没有进一步。选择适合这项工作的工具。扳手可以做锤子的工作,但锤子是用来做锤子的工作的。

Python有命令行

在指向和单击时提出的孩子们通常不能首先GROK命令行,但最终他们了解命令行的电源和表现力与良好的键盘耦合。语言的组合学非常令人惊叹。您必须单击几十个菜单页面来完成同样的事情,即良好的字符串可以使用命令行进行。Python住在这个世界上。Python是为命令行而构建的,并在那里蓬勃发展。该技术可能看起来非常令人难以置信,但它是高效且强大的。

R有这个和RStudio

R也是围绕命令行构建的,尽管它在命令行内部构建了相当多的状态。但很多人在这样的环境中工作rstudio.R指挥官,两个世界中的两个世界,将一切都在一个漂亮的弓中。有一个命令行,但也是一个数据编辑器,一些调试支持以及要保存图形的窗口。Python世界一直在努力通过与日食或Visual Studio这样的现有界限一起追赶。

Python有网络

也许会有开发Python的网站是很自然的,Python是一种与Unix web服务器共同发展的脚本语言。有牛仔竞技詹耶特对于初学者来说,更多可能会来。将端口80与解释器链接很容易,因此Python与Web工作得很好。是的,您可以使用Jupyter为Scala,Julia和R这样的其他语言,但如果您必须记住,如果您想知道谁先到那里,请记住如何拼写名称。

r爱乳胶

许多使用R攻击他们的数据的人也使用LaTex来编写报告所述数据中的信号的论文。只有某人创建狙击手,这是一个非常聪明的系统只是与纸张布局混合的非常聪明的系统。用于分析数据和创建图形的R命令将混合到您的文本中报告结果。这一切都在一个地方,最大限度地减少了腐败或粘滞巴克的危险。您按一个按钮,软件重新分析您的数据并转储最终文档的结果。

同时使用

为什么不像许多数据科学家已经做的那样,两全其美呢?数据聚合的第一阶段可以用Python完成。然后将数据输入R, R应用语言中内置的经过良好测试、优化的统计分析例程。就好像R是Python的一个库。或者,Python可能是一个r的预处理库。为特定的层选择最好的语言,构建一个层蛋糕。Python是糖霜,R是蛋糕吗?还是恰恰相反?你决定。

相关文章

这个故事,“Python vs. R:数据科学家思维的战斗”最初是发表的InfoWorld.

加入网络世界社区有个足球雷竞技app脸谱网linkedin对自己最关心的话题发表评论。
有关的:

版权所有©2017.Raybet2

IT薪水调查:结果是