在256种编程语言中,了解数据科学的编程语言!
作者 | Rashi Desai
译者 | Arvin,责编 | 屠敏
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
数据科学在相当长一段时间以来一直是一件大事。在当今飞速发展的技术世界中,当人类倾向于生成大量数据时,我们必须知道如何分析,处理和使用这些数据以获取更多可了解的业务见解。
关于数据科学中Python和 R的较量已经有足够多的论述了,但是我在这里不是谈论这个问题。两种语言我们都需要这就是我想说的全部。我已经创建了数据科学的十大编程语言列表,您可以在2020年学习这些语言,当然也可以尝试列表外的语言。
我选择语言列入榜单时,主要根据其受欢迎程度,Github被提及的次数,优缺点以及与2020年数据科学的相关性。
Python
第一个数据科学中所需要的就是Python。
我可以写几十篇关于Python为什么是数据科学首选语言的文章。
由于它的多功能性,数据科学家可以使用Python来解决几乎所有与数据科学相关的问题。
为什么是Python?
Python的面向对象特性使数据科学家能够以更高的稳定性,模块化和代码可读性来执行任务。尽管数据科学只是多样化Python生态系统的一小部分,但Python拥有专门的深度学习和其他机器学习库以及像scikit-learn,Keras和TensorFlow等流行工具。Python 使数据科学家能够开发复杂的数据模型,并将其直接应用到生产系统。
根据Python开发人员的调查结果,有84%的受访者使用Python作为主要语言,而有16%的受访者将其作为第二语言。
Python中的数据
对于数据收集,Python支持CSV,JSON,SQL表和使用beautiful soup工具获取的网络数据。
用于Python的数据分析库panda是您用于数据探索的最佳工具。通过组织成数据帧,panda可以轻松地过滤、排序和显示数据。
下面几个类库提供了对数据建模的支持:
NumPy —数值模拟分析
SciPy—科学计算与分析
scikit-learn-访问众多强大的机器学习算法。它还提供了一个直观的界面,使数据科学家可以充分利用机器学习的所有功能,而不必考虑它的复杂性
对于数据可视化,matplotlib,plot.ly,nbconvert可以将Python文件转换为HTML文档,列出漂亮的图形和仪表板,帮助数据科学家既有力又美观地来展示研究结果。
R
R是一个开源工具,它允许数据科学家跨平台地使用诸多操作系统。统计是这一技术的核心优势。R不仅仅是一种语言,它本身就是一个进行统计计算的生态系统。它的内置函数有助于执行数据处理、数学建模、数据可视化操作等。
R中的数据
R支持Excel,CSV,文本文件,Minitab或SPSS文件格式,使用Rvest获取的网络数据以及其他常见的用于数据收集的文件格式。
R的建立是为了对大型数据集进行统计和数值分析,因此,可以对数据探索执行大量操作-对数据进行排序,转置表,创建图,生成频率表,采样数据,概率分布,合并数据,变量转换等。推荐去探索dplyr,tidyr,以获得更多的最佳结果。
R是一种适合于科学可视化的健壮环境,有许多专门用于数据可视化结果图形显示的软件包。我们可以使用图形模块获得基本图形,图表和绘图。可视化效果也可以保存为jpg.等图像格式或单独的PDF文件。ggplot2是高级图(例如带有回归线的复杂散点图)的福音。
R Vs Python
对于数据科学来说,关于Python与R的争论是永无止境的,但是作为数据科学家,我们需要明白,虽然两者都有优点,但也都有缺点。
大多数程序员将一种或另一种编程语言视为他们的“首选”。假设,R用户有时渴望Python语言中内置的面向对象的功能。类似地,一些Python用户梦想着R中内置的统计分布。这意味着很有可能在一个项目中结合这两种领先的技术来得到一组独特的互补函数。
Scala
Scala是一种结合面向对象和函数式编程的简洁的高级语言。这种语言最初是为Java虚拟机(JVM)构建的,Scala的强项之一是与Java代码交互非常容易。
为什么选择Scala?
选择Scala学习数据科学的主要原因之一可以归功于Apache Spark。结合Scala与Apache Spark一起来处理大数据(Big Data),这对于数据科学家来说是无价的。
许多基于Hadoop构建的高性能数据科学框架通常都是使用Scala或Java编写的。在这些环境中使用Scala的原因是由于它对并发性的顺滑支持。由于Scala是在JVM上运行,因此与Hadoop搭配起来简直无敌。
为什么不使用Scala?
Scala唯一的缺点是它的学习曲线。另外,它的社区不是很活跃,因此在出现错误的情况下自行寻找问题的答案就会变得很繁琐。
当数据量大到足以实现该技术的全部潜力时,Scala非常适合这类项目。
SAS
SAS —统计分析系统
与R一样,SAS是为高级数据分析和复杂的统计操作而开发的工具。它是一种封闭源代码的专有工具,提供了各种各样的统计功能来执行复杂的建模。SAS由于其高可靠性而被大型组织和专业人员广泛使用。
为什么选择SAS?
请注意,SAS不是最适合初学者和独立数据科学爱好者的工具,因为SAS是为满足不断发展的业务需求而量身定制的。但是,如果您希望将数据科学作为自己的职业,那么最好掌握SAS的操作知识,以获得清晰的认识。
SAS擅长通过SAS Base(运行SAS环境的主要编程语言)执行统计建模。
为什么不使用SAS?
尽管SAS一直是企业分析领域无可争议的市场领导者,但要与Python或R进行功能比较,SAS似乎很难对数据进行建模和可视化。学习曲线非常棘手,并且通常被拥有巨大预算的大型公司使用。
SAS为数据科学家提供了多种认证计划。包括以下几种:
1)SAS Academy for Data Science
The SAS Academy for Data Science 认证计划提供数据操作、高级分析、人工智能和机器学习等课程内容,详见www.sas.com
2)SAS Programmer Professional Certificate | Coursera
这是Coursera 提供的SAS® 认证,提供SAS® Base编程语言等内容,详见www.coursera.org
Julia
Julia语言处理数据的速度比Python,JavaScript,Matlab,R要快,在性能上略逊于Go,Lua,Fortran和C。数值分析是该技术的优势,但是Julia也能很好地应对通用编程。
为什么选择Julia?
Julia比其他脚本语言更快,这使得数据科学家可以在快速开发Python / MATLAB / R的同时生成快速的代码。
借助Julia数据生态系统,多维数据加载非常快速。它并行执行聚合,联接和预处理操作。Julia包括各种数学库,数据处理工具以及用于通用计算的软件包。除此之外,与来自Python,R,C / Fortran,C ++和Java的库的集成非常容易。
为什么不选择Julia?
由于Julia不是一个完全成熟的工具,因此社区范围仍然很有限。在查找错误或故障时,有限的选项或解决方案可能会成为障碍。业内专家们非常希望,当Julia变得更加成熟时,能够与Python和R全面竞争。
MATLAB /Octave
A方案——MATLAB
MATLAB是第一个用于数据科学的工具。我是在2017年开始学习数据科学的,当时我在Coursera上学习了吴恩达(Andrew Ng)的机器学习课程,他在课堂上使用了Octave。与此同时,我在本科课程中学习MATLAB,并在Courser课程中练习MATLAB。
我知道MATLAB是执行深刻的数学运算最好的编程语言。数据科学大量涉及到数学,这使得这项技术成为进行数学建模,图像处理和数据分析的强大工具。
为什么选择MATLAB?
它拥有一个庞大的数学函数库,用于线性代数,统计,傅立叶分析,滤波,优化,数值积分和求解常微分方程。MATLAB提供了用于可视化数据的内置图形和用于创建自定义绘图的工具。
为什么不选择MATLAB?
现在,数据科学家很少使用MATLAB,尽管他们说MATLAB对于数学和建模非常有用。随着R和Python在数据科学领域的问世,MATLAB逐渐衰落。鉴于高昂的许可费用,它目前仅在学术界流行。
您在数据科学中使用的语言在很大程度上取决于您正在解决的问题。如果您的问题需要复杂的数学计算,至少对于初始数据探索和初步结果而言,那么没有比MATLAB更好的起点了。
B方案——OCTAVE
它是MATLAB的主要替代方案。一般来说,这两种技术没有本质的区别,只是有一些小的的差别。与MATLAB一样,如果需要强大的算术计算,Octave可以用于数据量相对较小的项目中。
Java
Java可能是用于编程和业务开发的最古老的面向对象语言之一。Hive,Spark和Hadoop等大多数知名的大数据工具都是用Java编写的。Java有许多我们可能不知道的用于数据科学的库和工具,例如Weka,Java-ML,MLlib和Deeplearning4j。
为什么选择Java?
Java可能不会成为数据科学的一种显而易见的语言,但是由于诸如Hadoop之类的许多数据科学框架都运行在Java虚拟机(JVM)上,它仍是数据科学的顶级编程语言之一。
Hadoop是一种流行的数据科学框架,用于管理大数据应用程序的数据处理和存储。Hadoop具有一次处理无限任务的能力,因此它支持存储和处理大量数据。
总而言之,如果您想享受Hadoop框架的功能,Java是最好的数据科学编程语言之一。
Perl
Perl是高级编程语言,通用编程语言,并且是解释性的动态编程语言。由于Perl语言依赖于轻量级数组,因此Perl能够更有效地处理数据查询,而不需要程序员的过多处理。
为什么选择Perl?
由于它具有通用脚本语言的多功能性,因此作为动态类型化的脚本语言它与Python有很多共同点。Perl在诸如生物信息学,金融和统计分析等定量领域中得到了应用。
随着Perl 5的发布,处理大型数据集的能力比以前的版本要好得多。它正在用Perl 6实现“大数据精简版”。波音,西门子以及更多的财富500强企业都已经准备好在数据科学领域积极尝试Perl。
Perl通过协调大规模的数据插入和查询,以简单,可维护的架构映射或减少TB级的数据。Perl 6的计划是提供一种模块化,可插入的体系结构,并具有针对大数据管理的灵活性和定制性。
为什么不选择Perl?
Perl并不是一种仅靠学习就可以使您成为高效的数据科学家的语言。它的速度不够快,语法也不友好。由于它是一种相对不受欢迎的语言,因此社区对数据科学的支持较少。值得一提的是,“ Perl开发人员”社区正在变得越来越多。总体而言,目前并没有将Perl开发为数据科学语言的动力。
Haskell
Haskell是一种具有类型推断功能的通用静态类型纯函数式编程语言。
为什么选择Haskell?
Haskell具有强大的财务代码基础,可以轻松与Excel交互进行计算。这对编码数学概念很有用。一般来说,Haskell擅长抽象,因此,与其他任何数学或软件工具一样,数据科学也可以从Haskell的连贯抽象中受益。
Haskell也可以使用HaskellR直接对R中的值进行运算。
Haskell拥有DataHaskell,DataHaskell是一种利用Haskell编程语言来进行可靠且可复制的数据科学和机器学习开发的开源资源。Haskell的数据科学社区肯定会随着DataHaskell的发展而发展。
Target的首席AI科学家说:“ Haskell具有表现力,更快,更安全。Haskell传统上不用于数据科学,因此库的选择受到限制。Haskell与数学有着密切的关系,最终它的类型系统和数学特性对特定领域的业务代码的帮助会比其他任何东西都强大。”
为什么不选择Haskell?
Haskell具有作为数据科学语言的应用程序,但是,Haskell的数据科学知识还没有Python或R丰富。Haskell在数据科学功能方面并不强大。学习曲线本质上是困难且耗时的。
原文https://towardsdatascience.com/top-9-languages-for-data-science-in-2020-824239f930c
本文为 CSDN 翻译,转载请注明来源出处。
推荐阅读
云计算,巨头们的背水一战
整理了一份 Docker系统知识,从安装到熟练操作看这篇就够了 | 原力计划
借助大数据进行社交媒体营销,企业们得这么玩!
追忆童年,教你用Python画出儿时卡通人物
AI 终极问题:我们的大脑是一台超级计算机吗?
公链的历史交叉口:PoS还能走多远?
真香,朕在看了!