如果让你选择一种语言,超过成为程语你觉得Python和中文,汉语哪个对于未来更重要?未最 最近,一直以高素质实习生项目闻名的备学高盛集团发布了一份《2017高盛调查报告》,针对全球2500名在高盛的高盛夏季实习生调查, 当问到你认为“哪个语言在未来会更重要”时,最新重技种编在被调查的调查全球2500名80、90后优秀年轻人中,超过成为程语72%选了Python。汉语 Python所代表的未最数据科学分析能力和编程能力正成为年轻人乃至整个世界最看好的热门或者说必备技能。而除了Python,备学数据科学领域还有大把语言可以选择,高盛如何基于自己的需要选择一门最适合自己的编程语言开始学习呢? 本篇文章将详细对比解析数据科学领域最热门的几大“网红”编程语言:R,Python,SQL,Java, Scala,Matlab,JavaScript,Ruby,并从优缺点、适用领域几个方向让你迅速了解自己最需要哪一款。 数据科学结合了高大上的高防服务器统计、数量分析理论与实打实的编程能力,是一个让人想想就有点小激动的工作领域。面对众多编程语言,胸怀大志的数据科学家们在术业有专攻之前难免会有乱花渐欲迷人眼之感。 尽管不同选择之间没有高低对错,但是有几点是必须要考虑清楚的。你在数据科学家这条路上能走多远取决于很多因素,具体包括: 深度 在高级数据科学的世界中,老调重弹是没有前途的。选定语言后,努力把各种包和模型都吃透。决定你掌握程度的首要因素是你能接触到哪些特定领域的包。 顶级数据科学家必须既是全面编程小能手,也是鼓捣数字神队友。数据科学日常工作的很大一部分都围绕着获取、加工原始数据或“数据清理”,香港云服务器而那些牛逼闪闪的各种机器学习包在这里都毫无用武之地。 数量 商用数据科学的步伐通常是快到飞起,因此出活儿快的好处简直数不清。这也使得技术部门能够悄悄地争取一席之地,而只有靠谱的做法才能让把工时降到最低。 质量 代码效果最大化有时具有举足轻重的意义,尤其是处理大批量关键数据的时候。编译语言在速度上往往远超解释语言;无独有偶,静态类型语言的故障率也远低于动态类型语言。显而易见,质的提升是以量的减少为代价的。 从某种意义上讲,我们可以画出这样一对轴线(广度-深度;数量-质量)。下面列出的每种语言都可以在上述范围内找到自己的位置。 心里有谱之后,我们一起来看看这些数据科学语言中的“网红”。下面的服务器托管内容仅是本人及朋友、同事在研究和个人使用中总结出的数家之言,绝不是什么标准答案。排序基本上是按照“网红”程度来的,嘿喂狗~ 1. R语言 (1) 简介 R语言以老前辈S语言直系后裔的身份,于1995年闪亮登场,此后一路高歌猛进,从成功走向成功。该项目目前采用的语言包括C、Fortran和R,得到了统计计算R联盟(R Foundation for Statistical Computing)的支持。 (2) 证书 免费哒! (3) 优点 (4) 缺点 (5) 小结:本职岗位的尖兵 R语言功能强大,在众多统计和数据可视化应用中表现出众;开源更是带来了大批活跃的贡献者。最近一个时期R语言的走红彰显了它在“本职工作”上的优异表现。 2. Python语言 (1) 简介 1991年,经Guido van Rossum(吉多·范罗苏姆)推出后,Python就成为了通用语言中的大热门,在数据科学社区中得到了广泛应用。目前使用的主流版本是3.6和2.7。 (2) 证书 免费哒! (3) 优点 (4) 缺点 (5) 小结:哪里需要哪里搬的好手 Python是数据科学语言的上佳之选,对象绝不仅限于初学者。很多数据科学流程都围绕着ETL(抽取-转换-加载)展开,这与Python的通用性简直是天作之合。诸如谷歌Tensorflow等库更使得Python在机器学习领域大出风头。 3. SQL语言 (1) 简介 结构化查询语言(SQL)是关系数据库的定义者、管理者和查询者。虽然自1974年面世后历经多次实现,但核心原则从未改变。 (2) 证书 看情况-有些实现是免费的,有些受版权保护。 (3) 优点 (4) 缺点 (5) 小结:高效的经典款 与其作为高级分析工具,SQL在数据处理上表现得更加得心应手。然而,数据科学工作的大头都依赖于ETL,SQL的长盛不衰和简明高效恰恰证明这是一门值得现代数据科学家了解掌握的有用语言。 4. Java语言 (1) 简介 Java是在Java虚拟机上运行的一门非常受欢迎的通用语言。这个抽象计算系统能够实现跨平台的无缝移植。目前有甲骨文公司支持该语言。 (2) 证书 第八版-免费哒!旧版本受版权保护。 (3) 优点 (4) 缺点 (5) 小结:数据科学的有力竞争者 把Java作为数据科学首选语言能够带来不少益处。将数据科学产品代码与现有代码库直接无缝整合的能力是众多公司梦寐以求的;你会发现,Java在此方面和型别安全上的优异表现是货真价实的加分项。然而,面对其它语言时,你也不得不面对没有各类统计特定包可用的现状。尽管如此,Java仍然值得拥有-尤其是你已经掌握了R和/或Python的情况下。 5. Scala (1) 简介 由Martin Odersky开发,并于2004年发布,Scala是一种在JVM上运行的语言。 它是一种多范式语言,融合了面向对象和函数式编程。集群计算框架Apache Spark就是用Scala编写的。 (2) 证书 免费! (3) 优点 (4) 缺点 (5) 结论:完美,适合大数据 当使用集群计算来处理大数据时,Scala + Spark是非常棒的解决方案。 如果你有Java和其他静态类语言的经验,你也将会非常欣赏Scala的性能。然而,如果你的应用程序无法用来处理一定量的数据,这恰恰证明了Scala增加的复杂性,你可能会发现使用其他语言(如R或Python)的效率要高得多。 6. Julia (1) 简介 5年前发布的Julia在数值计算领域让人印象深刻。由于几家主要机构(多为金融行业)的早日采用,其形象得到了提升。 (2) 证书 免费! (3) 优点 (4) 缺点 (5) 结论:它是未来 Julia的主要问题目前并不能过分苛责。作为最近开发的语言,它不像Python和R这些竞品那样成熟和生产就绪。但是,如果你愿意耐心等待,那么在未来几年里,我们有充分的理由去密切关注Julia的进一步发展。 7. MATLAB (1) 简介 MATLAB是在学界和业界广泛使用的一种老牌数值计算语言。 它是由MathWorks公司开发和许可的,MathWorks成立于1984年,主营该软件的商业化。 (2) 证书 专有的 - 定价根据用途而有所不同。 (3) 优点 (4) 缺点 (5) 结论:最适合数学需求高的应用 MATLAB在整个业界和学界的许多定量和数值研究领域的广泛应用使其成为了数据科学的重要选择。其明确的应用场景是当你的应用程序或日常角色需要大量的高级数学功能时,的确,MATLAB是专为此而设计的。 8. 其他编程语言 还有一些数据科学家可能会也可能不会感兴趣的其他主流语言。本节提供了一个快速的概述...当然有充足的论证空间! C++ C ++并不是数据科学的常见选择,尽管它具有运行速度快的性能和广泛的主流流行度。其简单的原因可能是生产力与性能的问题。 正如一个Quora用户所说: “如果你正在编写代码进行一些可能只运行一次的专项分析,你是愿意花30分钟的时间编写一个将在10秒内运行的程序,还是在10分钟内编写一个将运行1分钟的程序?” 这个小伙伴抓到了重点。然而,对于重要的生产级别性能而言,C ++将是实现在低级别机器学习算法优化的绝佳选择。 结论:不服务于日常工作,但如果性能表现是至关重要的... JavaScript 随着近年来Node.js的兴起,JavaScript越来越成为重要的服务器端语言。然而,它在数据科学和机器学习领域的使用已十分有限(不过可查看brain.js和synaptic.js!)。 它具有以下缺点: (1) 入局太晚(Node.js只有8岁!),意味着... 很少有相关的数据科学库和模块可用。 这意味着没有引起真正的主流兴趣或动力。 (2) 性能方面,Node.js很快。 但JavaScript作为一种语言并不是没有它的槽点。 Node’s的优势在于异步I / O,其被广泛使用,且存在于可编译为JavaScript的语言中。 因此,可以想象,数据科学的有用框架和实时ETL处理可以结合在一起。关键问题是这是否会提供些新的特别之处。 结论:JavaScript距成为重要的数据科学语言还有很长的路要走 Perl Perl被称为“编程语言的瑞士军刀”,得名于其作为通用脚本语言的多功能性。 它与Python有很多共同之处,同样是一种动态类型的脚本语言。但是,在数据科学领域,它还没有像Python一样的人气。 这看起来有点难以置信,尤其是如果你知道它在定量领域如生物信息学中的应用。 Perl在数据科学方面有几个关键的缺点。它不是很突出,它的语法是不友好的。数据科学专用程序库的开发并不像生物信息学那样有大的进展。在任何领域,势头都是关键。 结论:一个有用的通用脚本语言,但它并不能给你的数据科学简历带来真正的优势 Ruby Ruby是另一种通用的动态类型的解释语言。然而,它并没有在数据科学得到像Python一样的应用。 这似乎是令人惊讶的,但可能是Python在学术界的主导地位和正面反馈效应的结果。 使用Python的人越多,开发的模块和框架就越多,从而越来越多的人会转而使用Python。SciRuby项目的存在是为了将如矩阵代数这样的科学计算功能引入到Ruby中。但是目前来看,Python还是领先的。 结论: 对于数据科学来说目前还不是一个明显的选择,但对简历也没什么坏处 总结 好了,现在你有了一个数据科学领域编程语言选择的快速指南。然而,选择最合适语言的关键是,你要了解你使用需求的一般性与特殊性,以及你个人偏爱的基于性能与生产力平衡的开发风格。 我一般使用R,Python和SQL,因为我目前的角色主要侧重于开发已有数据的流水线和ETL流程。这些语言可以平衡一般性和生产力来完成这项工作,并可以在需要时使用R的高级统计软件包。 不过 – 也许你已经有了Java的经验, 或者你可能想使用Scala来处理大数据。 或者,你热衷于参与Julia项目。 也许你在大学学过MATLAB,也许你还想给SciRuby一个机会? 或者你有一个完全不同的建议! 如果是这样,请在下面回复 - 我期待着你的声音! 感谢您的阅读! 原文: https://medium.freecodecamp.org/which-languages-should-you-learn-for-data-science-e806ba55a81f 【本文是专栏机构大数据文摘的原创译文,微信公众号“大数据文摘( id: BigDataDigest)”】 戳这里,看该作者更多好文作者:Peter Gleeson 编译:白丁,高盛吴双,最新重技种编ether,调查魏子敏