9个最佳的大数据处理编程语言(转载自物联网智库)

摘要:
事实证明,R语言是最好的选择。因为R语言正在成为数据科学的“通用语言”。57%的受调查者使用R语言。截至2016年11月,R语言在所有编程语言中排名第13。此外,R语言多年来一直在增长:此外,还有TIOBE指数。在TIOBE指数上,R语言在过去十年中呈稳步上升趋势。R语言的dplyr包使数据处理更容易,可以大大简化数据处理的工作流程。尽管Julia目前的数据科学主要通过R语言、Python、Java、MatLab和SAS实现。

大数据的浪潮仍在继续。它渗透到了几乎所有的行业,信息像洪水一样地席卷企业,使得软件越发庞然大物,比如Excel看上去就变得越来越笨拙。数据处理不再无足轻重,并且对精密分析和强大又实时处理的需要变得前所未有的巨大。

9个最佳的大数据处理编程语言(转载自物联网智库)第1张

刚开始学习数据科学的人都会面对同一个问题:

不知道该先学习哪种编程语言。

不仅仅是编程语言,像Tableau,SPSS等软件系统也是同样的情况。有越来越多的工具和编程语言,很难知道该选择哪一种。

事实是,你的时间有限。学习一门新的编程语言相当于一项巨大的投资,因此在选择语言时需要有战略性。

很明显,一些语言会给你的投资带来很高的回报(付出的时间和金钱投资)。然而其他语言可能是你每年只用几次的纯粹辅助工具。

我给你的建议就是:先学习R语言

专注于一种语言

在说明为什么你应该学习R语言之前,我想强调的是,在开始学习数据科学时,你应该学习一种语言。

有些人问我是否应该学习在学R语言的同时学习Python。我的答案基本上是否定的,除非你需要使用一种以上的语言,否则你应该选择一种语言进行学习。

专注于一种编程语言的原因是,你需要更多地关注过程和技术,而不是语法。你需要掌握如何通过数据科学工具来分析数据,以及如何解决问题。事实证明,R语言是最佳的选择。

学习R语言

我建议你将R语言作为你的第一个“数据科学编程语言”。虽然也有例外,比如特定的项目需要。因为R语言正在成为数据科学的“通用语言”。

这并不是说R语言是唯一的语言,也不是说它是每个工作的最佳工具。然而,它是使用最广泛的,而且越来越受欢迎。

O' reilly media在过去几年中进行了一系列数据科学调查,分析了数据科学趋势。在2016年的调查报告中,R语言是最常用的编程语言(如果排除SQL的话,在本文中它不能称为编程语言)。57%的调查人群使用R语言(使用Python的比例为54%)。

另一个常见的语言排名系统是Redmonk编程语言排名,它由GitHub(代码行)和Stack Overflow(标签数)的流行指数派生而来。截至2016年11月,R语言在所有编程语言中排名第13。此外,R语言多年来一直呈持续上升趋势:

此外还有TIOBE指数(按搜索引擎搜索次数对编程语言进行排名)。在TIOBE指数上,R语言十年来呈现出稳定上升趋势。

9个最佳的大数据处理编程语言(转载自物联网智库)第2张

使用R语言的公司

在招聘数据科学家的几家顶级公司中,R语言使用程度非常高。在我认为现代经济中最优秀的两家公司——Google和Facebook 都有使用R语言数据科学家。

除了像Google,Facebook和微软这样的科技巨头,R语言在美国银行,福特,TechCrunch,Uber和Trulia等众多公司都有广泛的应用。

R语言在学术界很受欢迎

R语言不仅仅是一个行业工具。它在学术科学家和研究人员中也非常受欢迎,最近著名《自然》杂志上发表的R语言概况也证实了这一点。

R语言在学术界的备受欢迎,因为它创造了供应行业的人才库。

换句话说,如果最优秀、最聪明的人群在大学学习了R语言,这将加大R语言在行业中的重要性。当学者、博士和研究人员离开学术界从事商业活动时,他们又将产生对R语言人才的需求。

此外,随着数据科学的成熟,商业届的数据科学家将需要与学术届的科学家进行更多的沟通。我们需要借鉴技术和交流观点。随着世界转变为数据流时,学术科学与面向商业的数据科学之间的界线会变得模糊。

通过R语言学习“数据科学的技能”是最简单的

然而,R语言的普及性并不是学习R语言的唯一原因。

在选择语言时,你需要一种在这些领域都具有重要功能的语言。同时你需要执行这些任务的工具,以及在你所选语言中来学习这些技能的资源。

如上所述,你更多地需要关注流程和技术,而不是语法。

你需要学习如何解决问题。你需要学习如何在数据中找到真知灼见。

为此,你需要掌握数据科学的3个核心技能领域:数据处理,数据可视化和机器学习。在R语言中掌握这些技能将比任何其他语言都容易。

数据处理

一般来说,数据科学中80%的工作都是数据处理。通常情况下,你需要花费大量时间来整理你的数据。R语言中有一些很棒的数据管理工具。

R语言中的dplyr包使数据处理变得容易,这可以大大简化数据处理的工作流程。

数据可视化

ggplot2是最佳的数据可视化工具之一。ggplot2的好处是,在学习语法的同时,还学习如何思考数据可视化。

所有的统计可视化都有很深层的结构。存在构建数据可视化的高度结构化框架,ggplot2基于该框架。

此外,当将ggplot2和dplyr组合在一起时,从数据中得出相关见解几乎毫不费力。

机器学习

最后,还有机器学习。虽然我认为大多数数据科学初学者不应该急于学习机器学习(首先掌握数据探索更为重要),机器学习是一项重要的技能。当数据探索不再带来洞察力时,你则需要更强大的工具。

之后再学习更多的语言和工具

最终你会想学习更多的编程语言。就像工具箱中没有一个最好的工具一样,没有一种编程语言能够完美的解决你所有的数据问题。

以下是在学习R语言之后,你可以考虑学习的语言:

Rython

如果说R语言是一个神经质又可爱的高手,那么Python是它随和又灵活的表兄弟。作为一种结合了R语言快速对复杂数据进行挖掘的能力并构建产品的更实用语言,Python迅速得到了主流的吸引力。Python是直观的,并且比R语言更易于学习,以及它的生态系统近年来急剧增长,使得它更能够用于先前为R语言保留的统计分析。

“这是这个行业的进步。在过去的两年时间中,从R语言到Python已经发生了非常明显的转变,”Butler说。

在数据处理中,在规模和复杂性之间往往会有一个权衡,于是Python成为了一种折中方案。IPython notebook和NumPy可以用作轻便工作的一种暂存器,而Python可以作为中等规模数据处理的强大工具。丰富的数据社区,也是Python的优势,因为可以提供了大量的工具包和功能。

美国银行使用Python在银行的基础架构中构建新的产品和接口,同时也用Python处理财务数据。“Python广泛而灵活,因此人们趋之若鹜,”O’Donnell说。

不过,它并非最高性能的语言,只能偶尔用于大规模的核心基础设施,Driscoll这样说道。

Julia

虽然当前的数据科学绝大多数是通过R语言,Python,Java,MatLab和SAS执行的。但依然有其他的语言存活于夹缝中,Julia就是值得一看的后起之秀。

业界普遍认为Julia过于晦涩难懂。但数据骇客在谈到它取代R和Python的潜力时会不由得眉飞色舞。Julia是一种高层次的,极度快速的表达性语言。它比R语言快,比Python更可扩展,且相当简单易学。

“它正在一步步成长。最终,使用Julia,你就能够办到任何用R和Python可以做到的事情,”Butler说。

但是至今为止,年轻人对Julia依然犹豫不前。Julia数据社区还处于早期阶段,要能够和R语言和Python竞争,它还需要添加更多的软件包和工具。

“它还很年轻,但它正在掀起浪潮并且非常有前途,”Driscoll说。

JAVA

Java,以及基于Java的框架,被发现俨然成为了硅谷最大的那些高科技公司的骨骼支架。 “如果你去看Twitter,LinkedIn和Facebook,那么你会发现,Java是它们所有数据工程基础设施的基础语言,”Driscoll说。

Java不能提供R和Python同样质量的可视化,并且它并非统计建模的最佳选择。但是,如果你移动到过去的原型制作并需要建立大型系统,那么Java往往是你的最佳选择。

Hadoop和Hive

一群基于Java的工具被开发出来以满足数据处理的巨大需求。Hadoop作为首选的基于Java的框架用于批处理数据已经点燃了大家的热情。Hadoop比其他一些处理工具慢,但它出奇的准确,因此被广泛用于后端分析。它和Hive——一个基于查询并且运行在顶部的框架可以很好地结对工作。

Scala

Scala是另一种基于Java的语言,并且和Java相同的是,它正日益成为大规模机器学习,或构建高层次算法的工具。它富有表现力,并且还能够构建健壮的系统。

“Java就像是建造时的钢铁,而Scala则像黏土,因为你之后可以将之放入窑内转变成钢铁,”Driscoll说。

Kafka和Storm

那么,当你需要快速实时的分析时又该怎么办呢?Kafka会成为你的好朋友。它大概5年前就已经出现了,但是直到最近才成为流处理的流行框架。

Kafka,诞生于LinkedIn内部,是一个超快速的查询消息系统。Kafka的缺点?好吧,它太快了。在实时操作时会导致自身出错,并且偶尔地会遗漏东西。

“有精度和速度之间有一个权衡,”Driscoll说, “因此,硅谷所有的大型高科技公司都会使用两条管道:Kafka或Storm用于实时处理,然后Hadoop用于批处理系统,此时虽然是缓慢的但超级准确。”

Storm是用Scala编写的另一个框架,它在硅谷中因为流处理而受到了大量的青睐。它被Twitter纳入其中,勿庸置疑的,这样一来,Twitter就能在快速事件处理中得到巨大的裨益。

MatLab

MatLab一直以来长盛不衰,尽管它要价不菲,但它仍然被广泛使用在一些非常特殊的领域:研究密集型机器学习,信号处理,图像识别,仅举几例。

Octave

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

GO

GO是另一个正在掀起浪潮的后起之秀。它由Google开发,从C语言松散地派生,并在构建健壮基础设施上,正在赢得竞争对手,例如Java和Python的份额。

免责声明:文章转载自《9个最佳的大数据处理编程语言(转载自物联网智库)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇怎样更改wordpress登陆 URL防止恶意注册术语下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

R语言实战(一) R语言介绍

从2018年秋季(大二上学期)开始接触R语言,曾在2019年寒假读过一遍本书的第一版,感觉受益匪浅,之后遇到问题也曾回头来查阅这本书,前几天刚学习过Simulink,趁现在有空再来温习这本书,回顾一下代码和各种命令,简单记录。 虽然感觉R的功能和用途不如MATLAB广泛,但是需要派上用场的时候如果能熟练地运用真的是很好的体验。 R用方括号[ ]引用数组元...

Python脚本获取参数的方式

Python脚本获取参数的方式 在运维过程中,常常需要自己写脚本,而python往往是最佳的选择。那么怎么获取python脚本的命令行参数呢,例如: python demo.py a b c 怎么获取命令行参数,a,b,c 呢?可以通过sys库里面的argv来实现, 例如: $ cat demo.py #-*- coding: UTF-8 -*- i...

PHP函数stream_context_create()模拟POST/GET

有时候,我们需要在服务器端模拟 POST/GET 等请求,也就是在 PHP 程序中去实现模拟,改怎么做到呢?或者说,在 PHP 程序里,给你一个数组,如何将这个数组 POST/GET 到另外一个地址呢?当然,使用 CURL 很容易办到,那么如果不使用 CURL 库,又该怎么办呢?其实,在 PHP 里已经有相关的函数实现了,这个函数就是接下来要讲的 stre...

CmsTop 大众版运行环境搭建 (CentOS+Nginx+PHP FastCGI)

一、CentOS 5.5 操作系统的安装 操作系统这里我们仍采用 CentOS 5.5 来说明 Linux 下的 Nginx 安装与配置。关于CentOS的安装与注意事项请大家点击这里:(其中包含配置yum的步骤,因为我们接下来会使用到yum)。 二、准备工作 和Apache的配置相同,我们就来进行一些准备工作,譬如创建网站目录,日志目录等。然后安装服务器...

R语言-向量化操作(apply、tapply、lapply、sapply、mapply、table等)

一、apply函数(对一个数组按行或者按列进行计算):使用格式为:apply(X, MARGIN, FUN, ...) 其中X为一个数组;MARGIN为一个向量(表示要将函数FUN应用到X的行还是列),若为1表示取行,为2表示取列,为c(1,2)表示行、列都计算。apply()函数的处理对象是矩阵或数组,它逐行或逐列的处理数据,其输出的结果将是一个向量或是...

python 格式化输出

格式化输出 要理解格式化输出,就要先理解占位符 % 占位符 s 字符串 d 数字 先用占位符占位 再统一按顺序替换 name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入工作:') hobbie = input('请输入爱好:') msg = '''---------- info of...