十种程序语言帮你读懂大数据的“秘密”

2019-03-02 23:53|来源: 网路

  随着大数据的热潮不断升温,几乎各个领域都有洪水倾泻般的信息涌来,面对用户成千上万的浏览记录、记录行为数据,如果就单纯的Excel来进行数据处理是远远不能满足的。但如果只用一些操作软件来分析,而不怎么如何用逻辑数据来分析的话,那也只是简单的数据处理。

  替代性很高的工作,而无法深入规划策略的核心。

  当然,基本功是最不可忽略的环节,想要成为数据科学家,对于这几个程序你应该要有一定的认识:

  R

    若要列出所有程序语言,你能忘记其他的没关系,但最不能忘的就是R。从1997年悄悄地出现,最大的优势就是它免费,为昂贵的统计软件像是Matlab或SAS的另一种选择。
    但是在过去几年来,它的身价大翻转,变成了资料科学界眼中的宝。不只是木讷的统计学家熟知它,包括WallStreet交易员、生物学家,以及硅谷开发 者,他们都相当熟悉R。多元化的公司像是Google、Facebook、美国银行以及NewYorkTimes通通都使用R,它的商业效用持续提高。
    R的好处在于它简单易上手,透过R,你可以从复杂的数据集中筛选你要的数据,从复杂的模型函数中操作数据,建立井然有序的图表来呈现数字,这些都只需要几行程序代码就可以了,打个比方,它就像是好动版本的Excel。
    R最棒的资产就是活跃的动态系统,R社群持续地增加新的软件包,还有以内建丰富的功能集为特点。目前估计已有超过200万人使用R,最近的调查显示,R在数据科学界里,到目前为止最受欢迎的语言,占了回复者的61%(紧追在后的是39%的Python)。
    它也吸引了WallStreet的注目。传统而言,证券分析师在Excel档从白天看到晚上,但现在R在财务建模的使用率逐渐增加,特别是可视化工具,美国银行的副总裁NiallO’Conno说,「R让我们俗气的表格变得突出」。
    在数据建模上,它正在往逐渐成熟的专业语言迈进,虽然R仍受限于当公司需要制造大规模的产品时,而有的人说他被其他语言篡夺地位了。
    “R更有用的是在画图,而不是建模。”顶尖数据分析公司Metamarkets的CEO,MichaelDriscoll表示,
    “你不会在Google的网页排名核心或是Facebook的朋友们推荐算法时看到R的踪影,工程师会在R里建立一个原型,然后再到Java或Python里写模型语法”。
    举一个使用R很有名的例子,在2010年时,PaulButler用R来建立Facebook的世界地图,证明了这个语言有多丰富多强大的可视化数据能力,虽然他现在比以前更少使用R了。
    “R已经逐渐过时了,在庞大的数据集底下它跑的慢又笨重”Butler说。

  所以接下来他用什么呢?

http://techorange.com/wp-content/uploads/2014/05/python-logo-master-v3-TM.png

  Python
  如果说R是神经质又令人喜爱的Geek,那Python就是随和又好相处的女生。
  Python结合了R的快速、处理复杂数据采矿的能力以及更务实的语言等各个特质,迅速地成为主流,Python比起R,学起来更加简单也更直观,而且它的生态系统近几年来不可思议地快速成长,在统计分析上比起R功能更强。
  Butler说,“过去两年间,从R到Python地显著改变,就像是一个巨人不断地推动向前进‘。
   在数据处理范畴内,通常在规模与复杂之间要有个取舍,而Python以折衷的姿态出现。IPythonNotebook(记事本软件)和NumPy被用 来暂时存取较低负担的工作量,然而Python对于中等规模的数据处理是相当好的工具;Python拥有丰富的资料族,提供大量的工具包和统计特征。
  美国银行用Python来建立新产品和在银行的基础建设接口,同时也处理财务数据,“Python是更广泛又相当有弹性,所以大家会对它趋之若鹜。”O’Donnell如是说。
  然而,虽然它的优点能够弥补R的缺点,它仍然不是最高效能的语言,偶尔才能处理庞大规模、核心的基础建设。Driscoll是这么认为的。
  Julia
  今日大多数的数据科学都是透过R、Python、Java、Matlab及SAS为主,但仍然存在着鸿沟要去弥补,而这个时候,新进者Julia看到了这个痛点。
   Julia仍太过于神秘而尚未被业界广泛的采用,但是当谈到它的潜力足以抢夺R和Python的宝座时,数据黑客也难以解释。原因在于Julia是个高 阶、不可思议的快速和善于表达的语言,比起R要快的许多,比起Python又有潜力处理更具规模的数据,也很容易上手。
  “Julia会变的日渐重要,最终,在R和Python可以做的事情在Julia也可以”。Butler是这么认为的。
  就现在而言,若要说Julia发展会倒退的原因,大概就是它太年轻了。Julia的数据小区还在初始阶段,在它要能够和R或Python竞争前,它还需要更多的工具包和软件包。
  Driscoll说,它就是因为它年轻,才会有可能变成主流又有前景。

/uploadImages/2014/211/A4QCXC828LU7.jpg

 

  Java

  Driscoll说,Java和以Java为基础的架构,是由硅谷里最大的几家科技公司的核心所建立的,如果你从Twitter、Linkedin或是Facebook里观察,你会发现Java对于所有数据工程基础架构而言,是非常基础的语言。
  Java没有和R和Python一样好的可视化功能,它也不是统计建模的最佳工具,但是如果你需要建立一个庞大的系统、使用过去的原型,那Java通常会是你最基的选择。
  Hadoop and Hive
  为了迎合大量数据处理的需求,以Java为基础的工具群兴起。Hadoop为处理一批批数据处理,发展以Java为基础的架构关键;相较于其他处理工具,Hadoop慢许多,但是无比的准确和可被后端数据库分析广泛使用。和Hive搭配的很好,Hive是基于查询的架构下,运作的相当好
  Scala
  又是另一个以Java为基础的语言,和Java很像,对任何想要进行大规模的机械学习或是建立高阶的算法,Scala会是逐渐兴起的工具。它是善于呈现且拥有建立可靠系统的能力。
  “Java像是用钢铁建造的;Scala则是让你能够把它拿进窑烤然后变成钢的黏土”Driscoll说。
  KafkaandStorm
  说到当你需要快速的、实时的分析时,你会想到什么?Kafka将会是你的最佳伙伴。其实它已经出现五年有了,只是因为最近串流处理兴起才变的越来越流行。
  Kafka是从Linkedin内诞生的,是一个特别快速的查询讯息系统。Kafka的缺点呢?就是它太快了,因此在实时操作时它会犯错,有时候会漏掉东西。
  鱼与熊掌不可兼得,「必须要在准确度跟速度之间做一个选择」,Driscoll说。所以全部在硅谷的科技大公司都利用两个管道:用Kafka或Storm处理实时数据,接下来打开Hadoop处理一批批处理数据系统,这样听起来有点麻烦又会有些慢,但好处是,它非常非常精准。
  Storm是另一个从Scala写出来的架构,在硅谷逐渐大幅增加它在串流处理的受欢迎程度,被Twitter并购,这并不意外,因为Twitter对快速事件处理有极大的兴趣。

http://techorange.com/wp-content/uploads/2014/05/MATLABlog-550x338.png

  Matlab
  Matlab可以说是历久不衰,即使它标价很高;在非常特定的利基市场它使用的相当广泛,包括密集的研究机器学习、信号处理、图像辨识等等。
  Octave
  Octave和Matlab很像,除了它是免费的之外。然而,在学术信号处理的圈子,几乎都会提到它。
  GO
  GO是另一个逐渐兴起的新进者,从Google开发出来的,放宽点说,它是从C语言来的,并且在建立强大的基础架构上,渐渐地成为Java和Python的竞争者。
  这么多的软件可以使用,但我认为不见得每个都一定要会才行,知道你的目标和方向是什么,就选定一个最适合的工具使用吧!可以帮助你提升效率又达到精准的结果。

 原文链接:http://www.thebigdata.cn/QiTa/11251.html


转自:http://www.cnblogs.com/cstor/articles/3880751

相关问答

更多
  • 分析一个网页使用的是什么语言,有以下方法: 1. 扩展名识别。如果网址中有.asp/.php/.jsp等常见的动态脚本扩展名,则可以判断出对应的asp语言、php语言、java语言等。还有*.do也对应java语言,*.cfm对应ColdFusion语言,*.aspx对应dotNet的c#或VB.NET语言。 如果网址中看不到这些扩展名,也可以尝试猜文件名,如:default.asp/default.php/default.jsp/index.asp/index.php/index.jsp等等。 2. HT ...
  • 携程、途牛、去哪儿都是比较好的了吧,这几家的pc网站都是分为前台展示和后台管理的,而且还有app、小程序、微站、手机站、其他入驻平台甚至是电视客户端,每一个不同的终端或者业务后台所使用的语言都是不同的,甚至同一个业务模块都可能用了不同语言混编而成,比较多的语言是java、php、jsp、c++等。(零代码专注企业建站/小程序开发)
  • 网页方面: no.1: asp.net no.2: php no.3: asp no.4: xml no.5: pear/Python/ColdFusion 编程方面: no.1: java no.2: .net no.3: c/c++ no.4: delphi no.5: vb 以上排名为人气和关注程度最高,而不取决于实际运用数量. 可以说全球所有商业程序代码中,VB占了60%(根据美国ITTECH统计),但要比人气确远远落后于java和.NET, 但由于很多技术人员对微软的反感,使java的名气又远大于 ...
  • Java C C++ C# Python Javascript PHP VB.NET Perl Obj-C 这是今年1月的编程语言排行榜前10
  • 高级语言,是一种面向问题的程序设计语言,且独立于计算机的硬件,对具体的算法进行描述,所以又成为"算法语言",它的特点是独立性,通用性和可移植性好。 其种类千差万别,但一般包含有以下四种成分:数据成分用来描述程序所涉及的数据;运算成分用来描述运算;控制成分用来表达程序的控制构造;传输成分用来表达数据的传输。 由于高级语言程序主要是描述计算机的解题过程,即描述复杂的加工处理过程,所以也称这种高级语言为面向过程语言。 用高级语言编写的程序称为“源程序”。计算机不能直接技源程序的语句运行,通常有解释方式和编译方式两 ...
  • AS 动作脚本 进到软件 按F9然后点帮助 就能自学!
  • 程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。 程序设计=数据结构+算法 程序设计(Programming)是指: 设计、编制、调试程序的方法和过程。它是目标明确的智力活动。由于程序是软件的本体,软件的质量主要通过程序的质量来体现,在软件研究中,程序设计的工作非常重要,内容涉及到有关的基本概念、工具、方法以及方法学等。程序设计通常分为问题建摸,算法设计,编写代码,编译调试和整理并写出文档资料五个阶段。 特征从以下方面分析 程序设计的基本概念: 有程序、数据、子程序、子例程、协同例程、模块以及顺 ...
  • 1级优先级 左结合   () 圆括号   [] 下标运算符   -> 指向结构体成员运算符   . 结构体成员运算符   2级优先级 右结合   ! 逻辑非运算符   ~ 按位取反运算符   ++ 自增运算符   -- 自减运算符   - 负号运算符   (类型) 类型转换运算符   * 指针运算符   & 地址与运算符   sizeof 长度运算符   3级优先级 左结合   * 乘法运算符   / 除法运算符   % 取余运算符   4级优先级 左结合   + 加法运算符   - 减法运算符   5级优 ...
  • 都是用一门语言来编写,只是它们的用途实现的功能及语法不同而已,
  • 这里有几个概念,语言、指令。 这里说的语言是指计算机语言,例如C语言、C++语言等而不是人类语言,汉语、英语等。 人们使用这些语言表达自己需要完成的一系列功能,就形成程序,而这个程序就是用这种语言写的文字。 语言是通过编译器将其转换成处理器指令。就像人类的翻译。 语言和指令存在着某种等价关系。 就是说给定一个特定语言写的程序,编译器都将其转换对应的处理器指令序列。 而处理器指令本质上数学上的一组0和1。 而0和1的问题就数字电路的问题了。