您现在的位置是:主页 > 程序人生 >

【如云阁小说网】用于处理数据的9种最佳语言

admin 2019-12-29 16:52 【程序人生】 0次人已围观

简介大数据狂潮仍在继续。它几乎渗透到每个行业,为公司提供越来越多的信息,并使像Excel这样的软件恐龙变得越来越虚弱。数据处理不再只适合书呆子,对复杂分析和强大的实时处理的需求比以...

大数据狂潮仍在继续。它几乎渗透到每个行业,为公司提供越来越多的信息,并使像Excel这样的软件恐龙变得越来越虚弱。数据处理不再只适合书呆子,对复杂分析和强大的实时处理的需求比以往任何时候都更加重要。

那么,筛选巨大数据集的最佳工具是什么?我们与数据黑客讨论了他们最喜欢的用于硬核数据分析的语言和工具包。

R

用R以外的任何其他语言开始此列表将完全是一种疏忽。自1997年以来,它开始免费提供,以替代昂贵的统计软件,例如Matlab或SAS。

但是在过去的几年中,它已成为数据科学的黄金之子-现在不仅在书呆子的统计学家中而且在华尔街交易员,生物学家和硅谷开发商中都是家喻户晓的名字。Google,Facebook,美国银行和《纽约时报》等公司都在使用R,因为其商业用途不断扩展。

R具有简单明显的吸引力。通过R,您可以筛选复杂的数据集,通过复杂的建模功能处理数据,并创建简洁的图形以用几行代码表示数字。它被比作Excel的活跃版本。

R的最大资产是围绕它开发的充满活力的生态系统:R社区正在不断为其已丰富的功能集添加新的软件包和功能。据估计,超过200万人使用R,并且最近的一项民意调查显示,R是迄今为止数据科学中最受欢迎的语言,被61%的受访者使用(其次是Python,占39%)。

它也在华尔街流行。美国银行副总裁Niall O'Connor说,传统上,银行分析师会在深夜浏览Excel文件,但是现在R越来越多地用于财务建模,尤其是作为可视化工具。他说:“ R使我们平凡的桌子脱颖而出。”

尽管当公司需要生产大规模产品时R的功能受到限制,并且有人说R已经被其他语言所取代,但R作为一种数据建模语言已经日趋成熟。

Metamarkets首席执行官Michael Driscoll说:“ R更多地是关于草绘而不是构建。” “您不会在Google网页排名或Facebook的朋友建议算法的核心位置找到R。工程师将使用R进行原型设计,然后交付将要用Java或Python编写的模型。”

保罗·巴特勒(Paul Butler)早在2010年就以R语言建立了世界地图,证明了该语言的丰富可视化功能。不过,他没有像以前那样经常使用R。

Python

如果R是神经质,可爱的怪胎,那么Python是其随和,灵活的表亲。由于R快速,复杂的数据挖掘功能和更实用的语言来构建产品,Python正在迅速赢得主流的吸引力。Python比R更直观,更易于学习,并且它的生态系统近年来发展迅猛,使其能够进行以前为R保留的统计分析。

“这是行业内最大的人正在走向。在过去的两年中,从R到Python有了明显的转变。” Butler说。

在数据处理中,通常需要在规模和复杂度之间进行权衡,而Python已成为一种折衷方案。IPython Notebook和NumPy可以用作便笺簿以减轻工作负担,而Python是用于中等规模数据处理的强大工具。Python还具有丰富的数据社区的优势,提供了大量的工具箱和功能。

美国银行使用Python在该银行的基础架构内构建新产品和接口,还处理金融数据。“ O'Donnell说:“ Python广泛且灵活,因此人们蜂拥而至。

Driscoll说,它仍然不是性能最高的语言,只有偶尔才可以支持大规模的核心基础架构。

Butler说:“ R在行业中已变得过时,因为它在处理大数据集时既缓慢又笨拙。”

那他用的是什么呢?继续阅读。

JULIA

当今,绝大多数数据科学都是通过R,Python,Java,MatLab和SAS进行的。但是仍有空白需要填补,朱莉娅是一个值得关注的新人。

朱莉娅仍然太神秘了,无法被业界广泛采用。但是,数据黑客在谈论其将R和Python从其宝座中淘汰的潜力时会感到头晕。朱莉娅(Julia)是一种高级的,疯狂的快速表达语言。它比R更快,并且可能比Python更加可扩展,并且相当容易学习。

“即将到来。最终,您将能够在Julia和R和Python中完成任何事情,” Butler说。

青年暂时阻止了朱莉娅。Julia数据社区尚处于起步阶段,因此需要更多的软件包和工具才能与R或Python竞争。

Driscoll说:“它还很年轻,但是势头却很大。”

Java

Java和基于Java的框架深藏在硅谷最大的科技公司的骨架中。“如果您查看Twitter,Linkedin或Facebook,您会发现Java是其所有数据工程基础架构的基础语言,” Driscoll说。

Java不能提供R和Python所提供的相同质量的可视化效果,并且它并不是统计建模的最佳选择。但是,如果您不打算使用原型并且需要构建大型系统,那么Java通常是您的最佳选择。

HADOOP和HIVE

涌现了许多基于Java的工具,可以满足对数据处理的巨大需求。Hadoop已经成为批处理的基于Java的框架。Hadoop比其他一些处理工具要慢,但是它非常准确,并且广泛用于后端分析。它与Hive完美搭配,Hive是运行在顶部的基于查询的框架。

SCALA

Scala是另一种基于Java的语言,与Java相似,它越来越成为任何进行大规模机器学习或构建高级算法的人的工具。它具有表现力,并且能够构建健壮的系统。

“ Java就像用钢建造。Scala就像处理粘土一样,您可以将其放入窑中然后变成钢,” Driscoll说。

Kafka

当您需要快速,实时分析时该怎么办?卡夫卡是你的朋友。它已经存在了五年,但是最近才成为流处理的流行框架。

Kafka诞生于Linkedin内,是一种超快速的查询消息传递系统。卡夫卡的缺点?太快了 实时操作可能会导致错误,有时Kafka会错过一些事情。

Driscoll说:“要在精度和速度之间进行权衡。” “因此,硅谷的所有大型科技公司都使用两条管道:Kafka或Storm用于实时处理,然后Hadoop用于批处理系统,这将很慢,但是非常精确。”

Storm是用Scala编写的另一个框架,它在硅谷的流处理中获得了巨大的吸引力。毫不奇怪,它被收购了Twitter,对快速事件处理产生了极大的兴趣。

荣誉奖

MATLAB

MatLab已经存在了很长时间,尽管价格昂贵,但它仍广泛用于非常特定的领域:研究密集型机器学习,信号处理和图像识别等。

Octave

Octave与MatLab非常相似,但它是免费的。不过,在学术信号处理界之外很少见到它。

GO

GO是另一个不断涌现的新人。它是由Google开发的,从C语言松散地衍生而来,在构建强大的基础架构方面正在与Java和Python等竞争对手争夺市场。

孟文鹏博客版权所有丨如未注明 , 均为原创丨 转载请注明【如云阁小说网】用于处理数据的9种最佳语言