本文译自:《6 Useful Programming Languages for Data Science You Should Learn (that are not R and Python)》
您应该为数据科学选择哪种编程语言?以下列出了6种非Python或R的强大工具,这些语言的范围很广,通常在数据科学领域中使用,我们还为每种语言提供了开放源代码库,以帮助您开始进行数据科学项目的各个阶段,例如数据清理,模型构建等。
“我应该选择哪种编程语言来开始我的数据科学之旅?”
这很容易成为数据科学爱好者最常问的问题。我敢肯定,答案通常在Python和R之间徘徊。但是,我们为什么要限制自己使用这两种语言?我们可以在这个领域中学习和应用整个编程语言。数据科学的魅力就在其中,它超越了编程语言。
我的目的是引入一个超越Python和R的世界,同时保留其核心思想。我们将介绍6种功能强大且有用的数据科学编程语言,我认为每位数据科学家都应该学习(或至少意识到)。所有这些语言都是开源的。
Scala是一种相当普通的编程语言。您可能已经在用它开展工作,或者在某个时候遇到了它(特别是如果您从事IT工作)。
Scala是Martin Odersky在2003年创建的一种开放源代码现代多范式编程语言。Scala作为“可扩展语言”它旨在以简短,优雅且类型安全的方式表示通用的编程标准。
让我们这样说吧–如果您了解Java的语法,那么您将很快就能掌握Scala。实际上,如果您知道C,C 或Python之类的编程语言,学习Scala也将会非常顺利。我已经可以看到您的热情开始燃起!
那么,为什么要使用Scala?与纯Python相比,我们在Scala中编写代码的编译和执行速度要快得多。我喜欢Scala,因为它具有稳定性,灵活性,高速度和可伸缩性。您可以使用Scala开发适用于大数据的有用产品。
Scala相关资源:
Breeze:Breeze是一个用于数值处理的库,例如概率和统计函数,优化,线性代数等。
Github链接:https://github.com/scalanlp/breeze
Vegas:用于数据可视化的Scala库。
Github链接:https://github.com/vegas-viz/Vegas
Smile:Statistical Machine Intelligence and Learning Engine(Smile)是现代的机器学习库。
Github链接:https://github.com/haifengl/smile
DeepLearning.scala:这是一个简单的库,用于从面向对象和功能编程结构创建复杂的神经网络。
Github链接:https://github.com/ThoughtWorksInc/DeepLearning.scala
Julia在数据科学世界中正在迅速崛起。一些专家已经声称它会是Python的竞争对手!虽然我觉得这可能还为时过早,但是我们却是因该解了一下Julia的实用性。
Julia是由MIT的一组计算机科学家和数学家创建的一种令人耳目一新的现代、有意义且高性能的编程语言。它是开源的,通常用于科学计算和数据处理。如果您之前从事过R,Python或Matlab的开发,那么您会很快熟悉Julia。 Julia甚至存在一个scikit-learn库来帮助您进行过渡。
问题又来了–为什么Julia用于数据科学?原因有多种,但主要的原因是Julia的执行速度比Python和R的执行速度高10到30倍。
Julia相关资源
DataFrames.jl:用于在数据中查找数字模式的数据结构。
Github链接:https://github.com/JuliaData/DataFrames.jl
Plots.jl:用于绘制APIs和工具集。
Github链接:https://github.com/JuliaPlots/Plots.jl
ScikitLearn.jl:ScikitLearn.jl是流行的Scikit-learn库的Julia版本,这是用于构建ML。
Github链接:https://github.com/cstjean/ScikitLearn.jl
Mocha:Mocha是Julia的深度学习框架,灵感来自C 的Caffe框架。
Github链接:https://github.com/pluskid/Mocha.jl
呼吁所有开发者!如果您想在不了解新语言的情况下寻求进入数据科学的途径– JavaScript真的是非常好的途径。JavaScript是一种功能强大,轻量级且易于实现的编程语言。它于1995年在Netscape 2.0中以LiveScript的名字首次启动。
如果您想使用JavaScript,最好具备一些HTML的基础知识,并且事先接触过面向对象的编程概念。这将为您提供创建在线应用程序的基本思路。当您在移动应用或浏览器中部署机器学习模型时,这特别方便。
除此之外,JavaScript还有一些出色的库,可用于数据可视化和创建仪表板。可以使用TensorFlow.js(用于数据科学的功能强大的JavaScript库)执行各种机器学习技术,例如手势识别,对象识别,音乐创作等。
JavaScript相关资源:
Math.js:Math.js是一个用于JavaScript的扩展数学库。
Github链接:https://github.com/josdejong/mathjs
D3.js:D3(或D3.js)是一个JavaScript库,用于使用Web标准可视化数据。
Github链接:https://github.com/d3/d3
Tensorflow.js:强大的机器学习库,用于训练和部署机器学习模型。
Github链接:https://github.com/tensorflow/tfjs
您是果粉吗?您喜欢使用他们的各种设备和紧密结合的iOS吗?那您一定会爱上Swift。
Swift是Apple为iOS和OS X应用程序开发的一种开源,简单而灵活的编程语言。 Swift建立在C和Objective-C的最佳基础上,没有C兼容性的限制。实际上,对于初学者来说,它是一种友好的编程语言,因为其简洁而富有表现力的语法和运行起来闪电般的速度。
Swift最近开始在数据科学界引起关注是它得到了杰里米·霍华德(fast.ai的联合创始人)的高度认可。有各种各样的库可以执行任务,例如数值计算,用于矩阵数学的高性能函数,数字信号处理,应用深度学习方法,构建机器学习模型等。
Swift相关资源:
Nifty(Demo):这是Swift编程语言的通用数值计算库。
Github链接:https://github.com/nifty-swift/Nifty-demo
Swiftplot:用于数据可视化的Swift库。
Github链接:https://github.com/KarthikRIyer/swiftplot
TensorFlow的Swift:是用于机器学习的下一代平台。
Github链接:https://github.com/tensorflow/swift
Swift AI:这是一个完全用Swift编写的高性能深度学习库。
Github链接:https://github.com/Swift-AI/Swift-AI
显而易见,Go是Google创造的一种编程语言。简单,可靠,高效的软件–简而言之。我喜欢Go的唯一原因是它的singular focus。通过一次只专注于一种方法(与使用多种方法来解决问题的其他语言相反),它避免了冲突。同时它有大量的开源工具,程序包和资源可用于使用Go执行数据科学任务。这包括数据收集,数据组织,数据解析,算术和统计计算,EDA和构建机器学习模型等。
Go相关资源:
Math:此软件包提供基本常数和数学函数。
Github链接:https://github.com/golang/go/tree/master/src/math
Dataviz:在Golang中构建和可视化数据结构。
Github链接:https://github.com/Arafatk/DataViz
GoLearn:用于Go的通用机器学习库。
Github链接:https://github.com/sjwhitworth/golearn
Gorgonia:它可以简化机器学习任务,并为深度学习和神经网络相关项目提供了平台。
Github链接:https://github.com/gorgonia/gorgonia
Spark不仅是语言,还是一种框架,但是您很快就会知道为什么它在我的清单上。它在数据工程师和数据科学家中非常受欢迎。Spark提供:Java,Scala,Python和R中的高级应用程序编程接口(API),以及一种优化的引擎,支持常规执行图。同时它也是一个开放源代码的快速集群计算框架,用于处理,查询和分析大数据。与其他大数据框架相比,Spark的优势在于它基于内存中的计算。这使计算运行速度提高了一百倍。Python的基本知识足以让您快速上手Spark。
Spark可以执行各种数据科学和数据工程任务,例如:
探索性数据分析
特征提取
监督学习
模型评估
构建和调试Spark应用程序等
Spark相关资源:
Spark SQL:这是Apache Spark的用于处理结构化数据的模块。
Github链接:https://github.com/apache/spark/tree/master/sql
GraphX:GraphX是Apache Spark的用于图形和图形并行计算的API。
Github链接:https://github.com/apache/spark/tree/master/graphx
MLib:MLlib是Apache Spark的可扩展机器学习库。
Github链接:https://github.com/apache/spark/tree/master/mllib
Spark NLP:John Snow Labs Spark NLP是基于Apache Spark ML构建的自然语言处理库。
Github链接:https://github.com/JohnSnowLabs/spark-nlp
上文您是否觉得数据科学领域过于广阔?其实Python和R本身就很棒。但是这篇文章的目的是提出其他可用于执行数据科学任务的语言。
您也许现在已经知道其中一些语言(我相信所有开发人员都知道JavaScript!)–只是没有意识到可以将其用于构建出色的可视化和设计模型。为什么不试试呢!
原文链接:https://www.analyticsvidhya.com/blog/2019/06/6-useful-programming-languages-data-science-r-python/
欢迎关注【数据小盐罐儿】一个很“咸”的数据科学公众号,不定期分享有趣好玩的项目以及大量的学习资源