当前位置: 首页 > 科技观察

这些语言最适合做数据分析

时间:2023-03-21 20:45:57 科技观察

在海量数据集筛选什么工具最好?通过与数据黑客的交流,我们知道了他们最喜欢的硬核数据分析语言和工具包。.R语言在这些语言排行榜中,如果R语言排在第二位,那么其他任何语言都排不上第一位。自1997年以来,它作为Matlab和SAS等昂贵统计软件的免费替代品而在全世界流行起来。在过去的几年里,R已经成为数据科学的宠儿——数据科学现在不仅在书呆子统计学家中广为人知,在华尔街交易员、生物学家和硅谷开发人员中也家喻户晓。谷歌、Facebook、美国银行、纽约时报等各行各业的公司都在使用R语言,并且R语言在商业用途中不断传播和扩散。R语言具有简单明了的吸引力。使用R,只需几行代码,您就可以筛选复杂的数据集,使用高级建模功能处理数据,并创建平面图形来表示数字。它被比作Excel的过度活跃版本。R最大的资产是围绕它开发的充满活力的生态系统:R社区总是在其已经相当丰富的功能集中添加新的包和功能。据估计,有超过200万人使用R,最近的一项民意调查显示,R是迄今为止最流行的科学数据语言,61%的受访者使用它(其次是Python,占39%)。此外,它的身影也逐渐出现在华尔街。美国银行副总裁NiallO'Connor说,银行分析师过去常常全神贯注于Excel文件直到深夜,但现在越来越多地使用R进行金融建模,尤其是作为可视化工具。“R语言让我们普通的表格与众不同,”他说。R语言的日益成熟使其成为数据建模的首选语言。虽然当企业需要生产大规模产品时它的能力会变得有限,但有人说这是因为它的地位正在被其他语言所取代。.“R更适合绘制草图和轮廓,而不是详细构建,”Metamarkets首席执行官迈克尔德里斯科尔说。“你不会在Google的页面排名和Facebook的朋友推荐算法中找到R。工程师们会在R中制作原型,然后交给用Java或Python编写的模型。话虽如此,早在2010年,PaulButler就用R语言创建了一张著名的Facebook世界地图,这证明了该语言丰富的可视化功能。虽然他现在用R语言的不多了。R正在慢慢变得过时,因为它在处理大数据集时速度慢且繁琐,那么他用什么代替呢请继续阅读。Python如果说R是一个神经质的讨人喜欢的高手,那么Python就是它随和灵活的表亲。Python作为一种结合了R快速挖掘复杂数据和构建产品的能力的更实用的语言,迅速获得了主流的吸引力。Python比R更直观、更容易学习,并且其生态系统近年来发展迅速,使其更适用于以前为R保留的统计分析。这是行业向前迈出的一步。在过去的两年里,从R到Python发生了很多事情。显而易见的转变,在数据处理中,往往需要在规模和复杂性之间进行权衡,因此Python成为了一种妥协。IPythonnotebook和NumPy可以作为轻度工作的便签本,而Python可以作为中等规模数据处理的强大工具。丰富的数据社区也是Python的一个优势,因为它可以提供大量的工具包和函数。BankofAmerica在银行的基础设施中使用Python来构建新的产品和接口,同时也使用Python来处理金融数据。Python广泛且灵活,因此人们蜂拥而至。然而,它并不是性能最高的语言,只能偶尔用于大规模核心基础设施,Driscoll说。大多数是通过R、Python、Java、MatLab和SAS执行的。但仍有其他语言在夹缝中生存,Julia是一颗值得关注的后起之秀。业界普遍认为Julia过于晦涩难懂。但数据黑客正在为它取代R和Python的潜力而欣喜若狂。Julia是一种高级的、表达速度极快的语言。它比R更快,比Python更具可扩展性,而且相当容易学习。它正在成长。最终,有了Julia,你可以做任何你能用R和Python做的事情,但到目前为止,年轻人一直对使用Julia犹豫不决。Julia数据社区仍处于早期阶段。为了竞争,它还需要添加更多的包和工具。虽年轻,却正在掀起波澜,大有可为。JAVAJava和基于Java的框架已被发现是硅谷最大的高科技公司的支柱。如果您查看Twitter、LinkedIn和Facebook,就会发现Java是它们所有数据工程基础设施的底层语言。Java不提供与R和Python相同质量的可视化,它也不是统计建模的唯一选择。但是,如果您正在超越原型设计并需要构建大型系统,那么Java通常是您的最佳选择。Hadoop和Hive是一组基于Java的工具,是为满足海量数据处理需求而开发的。Hadoop作为最新的基于Java的批处理数据框架,点燃了大家的热情。Hadoop比其他一些处理工具慢,但准确度惊人,因此被广泛用于后端分析。它与运行在顶部的基于查询的框架Hive配合得很好。ScalaScala是另一种基于Java的语言,与Java一样,它正日益成为大规模机器学习或构建高级算法的工具。它具有表现力,也能够构建健壮的系统。Java在构建时就像钢铁,而Scala就像粘土,因为您可以稍后将其放入窑中并将其变成钢铁。Kafka和Storm那么,当您需要快速实时分析时,您会怎么做呢?卡夫卡将是你最好的朋友。它已经存在了大约5年,但直到最近才成为流行的流处理框架。Kafka诞生于LinkedIn内部,是一个超快的查询消息系统。Kafka的缺点嘛,太快了。实时操作的时候会导致自己出错,偶尔会漏掉一些东西。精度和速度之间存在权衡,“所以硅谷的所有科技大公司都使用两条流水线:Kafka或Storm进行实时处理,然后Hadoop用于批处理系统,虽然速度慢但超级准确。”Storm是另一个用Scala编写的框架,在流处理方面在硅谷获得了很多青睐。毫无疑问,它被Twitter收录了,这样Twitter就可以在快速事件处理方面获得巨大的好处。MatLab已经存在了很长时间,尽管价格不菲,但它仍然广泛用于一些非常特定的领域:研究密集型机器学习、信号处理、图像识别等等。OctaveOctave与MatLab非常相似,但它是免费的。然而,它很少出现在学术信号处理圈之外。GOGO是另一颗正在掀起波澜的后起之秀。它由谷歌开发,松散地源自C语言,正在构建一个强大的基础架构,正在从Java和Python等竞争对手那里获得份额。