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

高盛最新调查:Python超越中文成为未来最重要的技能您要学习哪种编程语言?

时间:2023-03-20 11:59:14 科技观察

作者:PeterGleeson编译:白丁、吴双、ether、魏子敏如果让你选择一门语言,你觉得哪个对未来更重要,Python还是中文?近日,以优质实习生项目着称的高盛集团公布了对全球2500名高盛暑期实习生的《2017高盛调查报告》调查。当被问到“未来哪种语言会更重要?”其中,72%的人选择了Python。以Python为代表的数据科学分析能力和编程能力正在成为年轻人乃至全世界最热门或必备的技能。除了Python,数据科学领域还有很多语言可供选择。如何根据自己的需求选择一门最适合自己的编程语言开始学习?本文将详细对比分析数据科学领域最流行的“网络”。“红色”编程语言:R、Python、SQL、Java、Scala、Matlab、JavaScript、Ruby,让你从优缺点、适用领域快速了解自己最需要哪一种。数据科学结合了高级统计学、定量分析理论和实际编程能力。是一个让人想想就有些激动的工作领域。面对如此多的编程语言,雄心勃勃的数据科学家在专攻该行业之前,难免会有一种越来越有魅力的感觉。虽然不同的选择之间没有对错之分,但有几点必须考虑清楚。作为一名数据科学家,你能走多远取决于许多因素,包括:深度在高级数据科学的世界里,重复同样的陈词滥调是行不通的。选择语言后,尝试了解各种包和模型。决定您是否精通的首要因素是您可以访问哪些特定领域的包。一个顶尖的数据科学家,必须既是编程高手,又是数字大神的队友。数据科学的大部分日常工作都围绕着获取和处理原始数据,或“数据清理”,所有那些花哨的机器学习包在这里都毫无用处。定量商业数据科学的步伐通常如此之快,以至于快速完成工作的好处简直数不胜数。这也让技术部门可以悄悄地争取一席之地,只有靠谱的做法才能将工时降到最低。最大化质量代码的效果有时具有重要意义,尤其是在处理大批量关键数据时。编译型语言往往比解释型语言快得多;同样,静态类型语言的失败率比动态类型语言低得多。显然,质的提高是以量的减少为代价的。从某种意义上说,我们可以画出这样一对轴(广度-深度;数量-质量)。下面列出的每一种语言都可以在上面的范围内找到它的位置。心里有了分数之后,我们再用数据科学的语言来看一看这些“网红”。以下内容仅是本人和朋友同事在研究和个人使用中总结出的几点看法,绝不是标准答案。排序基本上是按照“网红”程度来的。嘿狗~一、R语言(一)简介R语言作为老前辈S语言的直系后裔,于1995年面世,此后一直在长足发展。走向成功。该项目目前使用包括C、Fortran和R在内的语言,得到R统计计算基金会的支持。(2)证书免费!(3)优势开源数据包质量优良,领域明确,范围广。几乎所有你能想到的定量和统计应用都能找到对应的R包,比如神经网络、非线性回归、系统演化、高级图形等。基础安装内置的统计功能和方法相当全面。此外,R语言特别适合处理矩阵代数。核心优势之一是能够使用各种R语言库(如ggplot2)可视化数据。(4)劣势质量。R语言比较慢,这是肯定的。域特定。R语言在统计学和数据科学领域如鱼得水,但在通用编程方面就有点弱了。迈出不寻常的一步。R语言的一些“小脾气”可能会把擅长其他语言的程序员压在阴沟里。例如,使用多次赋值操作从1开始索引,这是一种非常规的数据结构。(5)总结:这个位置的vanguardR语言功能强大,在众多统计和数据可视化应用中表现突出;开源带来了大量活跃的贡献者。近段时间R语言的火爆,体现了其在“自己的作品”上的出色表现。2.Python语言(1)简介1991年,由吉多·范·罗苏姆(GuidoVanRossum)推出后,Python成为一种普遍流行的语言,并在数据科学界得到广泛应用。目前使用的主流版本是3.6和2.7。(2)证书免费!(3)优点极受欢迎的主流通用编程语言,模型种类多,应用范围广,社区支持多。许多在线服务都提供PythonAPI。入门很容易。低门槛使其成为菜鸟程序员理想的“初恋”。Pandas、scikit-learn和Tensorflow等软件包也让Python在高级机器学习应用程序中占有一席之地。(4)缺点类型安全:作为动态类型语言,Python一直备受关注。类型错误(例如将String传递给需要Integer的方法)几乎司空见惯。对于具体的统计和数据分析问题,R包“海纳百川”的覆盖面让它在面对Python时略占优势;但是在通用语言方面,Python总能给你一个更快更安全的选择。(5)总结:Python是数据科学语言的不错选择,而且不局限于初学者。许多数据科学过程都围绕ETL(提取-转换-加载)展开,这与Python的多功能性天生契合。Google的Tensorflow等库让Python在机器学习领域大放异彩。3.SQL语言(1)简介结构化查询语言(SQL)是关系数据库的定义者、管理者和查询者。自1974年推出以来,虽然实施了多次,但核心原则从未改变。(2)证书是有条件的——一些实现是免费的,一些是有版权的。(3)优点查询、升级、操作关系型数据库效率极高。声明性语法的使用使SQL通常非常可读。例如,“SELECTnameFROMusersWHEREage>18”的意思就很明确了。SQL的应用范围很广,因此熟悉该语言很有用。程序员可以使用SQLAlchemy等模块直接将SQL集成到其他语言中。(4)缺点SQL的分析能力非常有限——除了求和、计数和平均之外,你能做的不多。具有命令式语言背景的程序员可能需要一段时间才能掌握SQL的声明式语法。SQL有很多实现,例如PostgreSQL、SQLite和MariaDB。这些实现差异很大,互操作性是一个相当棘手的问题。(5)总结:SQL作为高级分析工具,在数据处理上比高效的经典模型更得心应手。然而,大多数数据科学工作都依赖于ETL,而SQL的长寿和简单性证明它是现代数据科学家掌握的有用语言。4.Java语言(1)简介Java是一种运行在Java虚拟机上的非常流行的通用语言。这种抽象的计算系统可以实现跨平台的无缝移植。Oracle目前支持该语言。(2)证书第八版-免费!旧版本受版权保护。(3)优势无处不在。许多现代系统和应用程序都构建在Java后端之上。它能够将各种数据科学方法直接与现有代码库集成;强大,你值得拥有。强打字。在类型安全方面,Java的直截了当的风格对于关键的大数据应用程序来说是无价的。作为一种高质量的通用编译语言,Java非常适合编写高效的ETL产品代码和计算能力强大的机器学习算法。(4)缺点Java冗长的代码不适合专门的分析和更详细的统计应用。R和Python等动态类型语言的输出显然更胜一筹。与R等领域定义语言相比,Java没有太多适合高级统计方法的库。(5)总结:数据科学领域的强大竞争者可以为Java作为数据科学的首选语言带来很多好处。将数据科学生产代码直接与现有代码库无缝集成的能力是许多公司梦寐以求的梦想;您会发现Java在这方面表现出色,并且类型安全是一个真正的优势。然而,在处理其他语言时,您还必须处理各种特定于统计的包不可用的事实。尽管如此,Java还是值得拥有的——尤其是当您已经拥有R和/或Python时。5.Scala简介(1)Scala是由MartinOdersky开发并于2004年发布的一种运行在JVM上的语言。它是一种混合了面向对象和函数式编程的多范式语言。集群计算框架ApacheSpark是用Scala编写的。(2)免费证书!(3)优势Scala+Spark=高性能集群计算。Scala是处理大型数据集的人员的理想选择语言。多范式:Scala兼容面向对象和函数式编程,这使得Scala程序员可以使用这两种范式。Scala被编译为Java字节码并在JVM上运行。这使得它可以与Java语言本身互操作,使Scala成为一种非常强大的通用语言,也非常适合数据科学。(4)缺点Scala不是一种容易让初学者上手运行的编程语言。最好的办法是下载sbt并使用特定的Scala插件设置像Eclipse或IntelliJ这样的IDE。它的语法和类型系统通常被认为是复杂的。这为来自Python等动态语言的用户提供了一个陡峭的学习曲线。(5)结论:完美,适用于大数据使用集群计算处理大数据时,Scala+Spark是一个很好的解决方案。如果您有使用Java和其他类静态语言的经验,您也会欣赏Scala的性能。但是,如果您的应用程序不能用于处理一定数量的数据,这证明Scala增加的复杂性是合理的,您可能会发现使用其他语言(例如R或Python)效率要高得多。6.Julia简介(1)5年前发布的Julia在数值计算领域令人印象深刻。由于几家主要机构(主要是金融行业)的早期采用,它的知名度得到了提升。(2)证件免费!(3)优点Julia是一种JIT(“及时”)编译语言,可提供良好的性能。它还提供了一种解释性编程语言,具有类似Python的简单性、动态类型和脚本功能。Julia专为数值分析而设计。它还能够进行通用编程。可读性。该语言的许多用户将此视为其主要优势。(4)缺点成熟度。作为一种新语言,一些Julia用户在使用该包时遇到了不稳定的情况。但据说核心语言本身足够稳定,可以使用。软件包数量有限是新生语言和小型开发社区的另一个结果。与已经存在很长时间的R和Python不同,Julia目前在包方面没有太多选择。(5)结语:是未来Julia的主要问题,目前不能过分挑剔。作为一种最近开发的语言,它不像Python和R等竞争对手那样成熟和可用于生产。但是,如果您愿意耐心等待,那么有充分的理由密切关注Julia在未来几年的进一步发展.7.MATLAB简介(1)MATLAB是一门古老的数值计算语言,广泛应用于学术界和工业界。它由MathWorks,Inc.开发并获得许可,该公司成立于1984年,旨在将该软件商业化。(2)证书独占-定价因使用情况而异。(3)优点专为数值计算而设计。MATLAB非常适合具有复杂数学要求的定量应用,例如信号处理、傅里叶变换、矩阵代数和图像处理。数据可视化。MATLAB有一些很好的内置绘图函数。MATLAB通常用作定量领域本科课程的一部分,例如物理、工程和应用数学。因此,它在这些领域得到了广泛的应用。(4)缺点专利许可。根据用途(学术、个人或公司),您可能需要支付昂贵的许可证费用。有免费的替代品,例如Octave。这是你需要认真考虑的事情。MATLAB不是通用编程的明显选择。(5)结论:最适合数学要求高的应用程序MATLAB在工业界和学术界的许多定量和数值研究领域的广泛应用使其成为数据科学的重要选择。它的明确应用场景是当您的应用程序或日常角色需要大量高级数学函数时,事实上,MATLAB就是为此目的而设计的。8.其他编程语言数据科学家可能感兴趣也可能不感兴趣的其他主流语言。本节提供快速概述……当然有足够的争论空间!C++C++并不是数据科学的常见选择,尽管它具有快速的性能和广泛的主流流行度。这样做的简单原因可能是生产力与性能的问题。正如一位Quora用户所说:“如果你正在编写代码来做一些可能只运行一次的临时分析,你愿意花30分钟编写一个可以在10秒内运行的程序,还是一个可以在10秒内运行的程序?10分钟?运行一个程序1分钟?”这位小伙伴抓住了重点。然而,对于关键的生产级性能,C++将是在低级机器学习算法中实现优化的绝佳选择。结论:不适合日常工作,但如果性能很关键……JavaScript随着近年来Node.js的兴起,JavaScript越来越成为一种重要的服务器端语言。然而,它在数据科学和机器学习中的使用非常有限(不过请查看brain.js和synaptic.js!)。它有以下缺点:(1)来晚了(Node.js只有8岁!),这意味着……很少有相关的数据科学库和模块可用。这意味着没有真正的主流兴趣或动力。(2)在性能方面,Node.js是快的。但是JavaScript作为一种语言并非没有缺陷。Node的强项在于异步I/O,它被广泛使用并存在于编译为JavaScript的语言中。因此,可以想象,一个有用的数据科学框架和实时ETL处理可以结合在一起。关键问题是这是否会提供一些新的和特别的东西。结论:JavaScript距离成为一种重要的数据科学语言还有很长的路要走PerlPerl被称为“编程语言的瑞士军刀”,因其作为通用脚本语言的多功能性而得名。它与Python有很多共同之处,也是一种动态类型的脚本语言。然而,它在数据科学领域并没有像Python那样受欢迎。这似乎有点难以置信,尤其是当你知道它在生物信息学等定量领域的应用时。Perl在数据科学方面有几个主要缺点。它不是很突出,语法也不友好。数据科学专业图书馆的发展并没有像生物信息学那样进步。在任何领域,势头都是关键。结论:一种有用的通用脚本语言,但它不会给您的数据科学简历带来真正的优势RubyRuby是另一种通用的动态类型解释语言。然而,它并没有像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)》]点此查看作者更多好文