你觉得python和中文,哪个对于未来更重要?
前言
最近,一份《2017高盛调查报告》出现在了小编的视野中,这份报告针对全球2500名夏季实习生进行了调查, 当实习生们被问到“你认为哪个语言在未来会更重要”时,在被调查的全球2500名80、90后优秀年轻人中,72%选了python。
如今,python所代表的数据科学分析能力和编程能力正成为年轻人乃至整个世界最看好的热门或者说必备技能。而除了python,而事实真的是这样么?数据科学领域除了python,还有大把语言可以选择。那么如何基于自己的需要选择一门最适合自己的编程语言开始学习呢?
今天小编就来和大家说说数据科学领域中,经常用到的几门语言,并从优缺点、适用领域等几个方向让你迅速了解自己最需要哪一款~
一、r语言
简介:
r语言以老前辈s语言直系后裔的身份,于1995年闪亮登场,此后一路高歌猛进,从成功走向成功。该项目目前采用的语言包括c、fortran和r,得到了统计计算r联盟(r foundation for statistical computing)的支持。
优点:
1、开源数据包质量过硬、领域明确、范围广泛。几乎所有你能想到的数量、统计应用都能找到相应的r包,比如神经网络、非线性回归、系统进化、进阶绘图等。
2、基础安装内置的统计功能和方法非常全面。此外,r语言尤其适合处理矩阵代数。
3、核心优势之一就是利用ggplot2等各种r语言库能够实现数据视觉化。
缺点:
1、质量。r语言比较慢,这是板上钉钉的。
2、领域特定。r语言在统计和数据科学领域如鱼得水,但是在通用编程上就有些力不从心了。
3、不走寻常路。r语言的一些“小脾气”可能会让擅长其他语言的程序猿阴沟里翻船。举个栗子,采用多赋值运算从1开始索引,非传统数据结构。
综合评价:本职岗位上的排头兵
r语言功能强大,在众多统计和数据可视化应用中表现出众;开源更是带来了大批活跃的贡献者。最近一个时期r语言的走红彰显了它在“本职工作”上的优异表现
二、python
1991年,经guido van rossum(吉多·范罗苏姆)推出后,python就成为了通用语言中的大热门,在数据科学社区中得到了广泛应用。目前使用的主流版本是3.6和2.7。
1、极受欢迎的主流通用编程语言,模型种类多、适用范围广,有众多社区支持。
2、许多在线服务都提供python api。
3、上手简单。低门槛使其成为菜鸟程序猿的理想“初恋”。
4、pandas、scikit-learn和tensorflow等包使python在高级机器学习应用中也有很强的存在感。
1、型别安全:作为一个动态类型语言,python时时刻刻求关注。类型错误(比如向心心念念期待着integer的方法传递了一个string)差不多是家常便饭了。
2、对于特定的统计、数据分析问题,r包“海纳百川”式的涵盖范围使其在面对python时有那么一丢丢优势;但是谈到通用语言,python总能给你更快、更安全的选择。
综合评价:多面手,哪里需要去哪里
python是数据科学语言的上佳之选,对象绝不仅限于初学者。很多数据科学流程都围绕着etl(抽取-转换-加载)展开,这与python的通用性简直是天作之合。诸如谷歌tensorflow等库更使得python在机器学习领域大出风头。
三、java
java是在java虚拟机上运行的一门非常受欢迎的通用语言。这个抽象计算系统能够实现跨平台的无缝移植。目前有甲骨文公司支持该语言。
1、无处不在。很多现代系统和应用都建立在java后台上。它能够将数据科学的各种方法直接与现有的代码库整合;功能强大,你值得拥有。
2、强型别。需要确保型别安全时,java单刀直入的风格对于那些至关重要的大数据应用而言简直是无价之宝。
3、作为一种高质量、通用型编译语言,java非常适合编写高效的etl产品代码和计算强大度的机器学习算法。
1、java冗长的代码并不适合专门分析和更为细致的统计应用。r和python等动态类型语言的输出显然更胜一筹。
2、与r等领域明确的语言相比,java并没有太多适用于高级统计方法的的库。
综合评价:数据科学的有力竞争者
把java作为数据科学首选语言能够带来不少益处。将数据科学产品代码与现有代码库直接无缝整合的能力是众多公司梦寐以求的;你会发现,java在此方面和型别安全上的优异表现是货真价实的加分项。然而,面对其它语言时,你也不得不面对没有各类统计特定包可用的现状。尽管如此,java仍然值得拥有-尤其是你已经掌握了r和/或python的情况下。
四、scala
由martin odersky开发,并于2004年发布,scala是一种在jvm上运行的语言。 它是一种多范式语言,融合了面向对象和函数式编程。集群计算框架apache spark就是用scala编写的。
1、scala + spark =高性能集群计算。 scala是使用大容量数据集的人的理想语言选择。
2、多范式:scala兼容面向对象和函数式编程,这使得scala的程序员们两种范例都可用。
3、scala被编译为java字节码并在jvm上运行。 这使得其具有了与 java语言本身的互操作性,使scala成为非常强大的通用语言,同时也非常适合数据科学。
1、对于初学者来说scala并不是一个简单的编程语言来起步和运行。 你最好的选择是下载sbt并使用特定的scala插件设置eclipse或intellij等ide。
2、其语法和类型系统通常被认为是比较复杂的。这为来自动态语言(如python)的用户提供了一个陡峭的学习曲线。
综合评价:完美贴合大数据
当使用集群计算来处理大数据时,scala + spark是非常棒的解决方案。 如果你有java和其他静态类语言的经验,你也将会非常欣赏scala的性能。然而,如果你的应用程序无法用来处理一定量的数据,这恰恰证明了scala增加的复杂性,你可能会发现使用其他语言(如r或python)的效率要高得多。
五、matlab
matlab是在学界和业界广泛使用的一种老牌数值计算语言。 它是由mathworks公司开发和许可的,mathworks成立于1984年,主营该软件的商业化。
1、专为数值计算而设计。matlab非常适合具有复杂数学要求的定量应用,如信号处理,傅里叶变换,矩阵代数和图像处理。
2、数据可视化。 matlab有一些很好的内置绘图功能。
3、matlab通常被作为诸如物理,工程和应用数学等量化类专业的本科课程的一部分。 因此,它在这些领域得到了广泛应用。
1、专利许可。 根据用途(学术,个人或企业),你可能需要支付昂贵的许可证费用。 有免费的备选方案如octave。 这是你需要认真考虑的问题。
2、matlab不是通用编程的明显选择。
综合评价:适用于数学要求高的程序
matlab在整个业界和学界的许多定量和数值研究领域的广泛应用使其成为了数据科学的重要选择。其明确的应用场景是当你的应用程序或日常角色需要大量的高级数学功能时,matlab是专为此而设计的。
结束语
好啦,希望本篇推文,能够成为你的一个数据科学领域编程语言选择的快速指南。
然而,选择最合适语言的关键是,你要了解你所在的工作环境的各种需求的一般性与特殊性,只有在合适的项目中选用合适的语言,才能发挥出它的最大作用。当然,你也不需要精通所有的编程语言,学习两道三种,将它们各自的优势与实际生产工作相结合,发挥出他们最大的优势,那才是我们最终的追求。
本文由e安在线合作讲师肖何原创文章,转载请联“e安在线”