【转】R、Python、Java、Scala几种语言的比较 - Go语言中文社区

【转】R、Python、Java、Scala几种语言的比较


转自:https://baijiahao.baidu.com/s?id=1577776089434181697&wfr=spider&for=pc

数据科学,一个想想就令人激动的领域,通过不一样的智慧将最优美的统计知识与编程能力结合起来,一个1+1>2 的领域,并且今年来所有的发展都预示着数据科学的辉煌之日已经来临,不管是大数据,人工智能,深度学习还是数据分析,都离不开数据科学。数据科学广泛的应用于各个领域,所有的编程语言也都在接纳数据科学,那么最好的数据科学是什么呢?

虽然没有绝对的答案,但是有几件事需要考虑,毕竟成为一名数据科学家取决于很多的方面:

1.适用性

在我们谈到的数据科学中,如果你想要走的更远,每次都造新的轮子显然是走不通的。学习掌握所选语言中提供的各种软件包和工具是很有必要的,而一款适用性广,拥有很多包的语言会是一个不错的选择。

2.速度

在通常快节奏的商业数据科学领域,迅速的完成一项工作是很有必要的,因此,对于技术的速度就在考虑之内了,不仅仅是指运行的速度,还有学习的速度。

3.性能

在某种情况下,优化代码的性能非常的重要,特别是在出来大量关键任务数据的时候,编译语言通常比解释语言快的多,同样,静态语言比动态语言出问题的概率也要打的多,一次平衡好速度和性能之间的关系很重要。

下面会介绍目前被广泛应用的语言,R,Python,java,Scala,我们会在考虑核心原则的同事,结合自己,同事和朋友的经验和研究,对每一种语言进行合理详细的分析。

R

R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。可以认为R是S语言的一种实现。而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言。

优点

1.优秀的高质量、特定领域的,并且开源的软件开发包。R语言有一个包括神经网络、非线性回归模型、系统、绘图和几乎所有数量和统计应用功能的开发包。

2. R语言的基础安装版就具有非常全面的、内置的统计功能和方法,同时R语言特别擅长处理矩阵代数

3.R语言拥有优秀的数据可视化功能。

缺点

1.R语言不是一种快速语言,并且没有很好的通用性,虽然对于统计和数据科学而言R语言是一个很好的选择,但是对于通用编程而言,这样的语言并不友好。

2.R语言的一些不寻常的特点和大多数的语言相比显得有些古怪,譬如:从1开始索引,使用多个赋值操作符,非常规的数据结构。

总结

R是一种功能强大的语言,它擅长统计和数据可视化应用程序的大量应用,而开源则允许非常活跃的贡献者社区。最近人气的增长证明了它的有效性。

Python

Guido van 1991年将Python带给我们,它后来成为一种非常流行的通用语言,在数据科学界得到了广泛的应用。目前主要版本为3.6和2.7。

优点

1. Python是一种非常流行的主流通用编程语言。它有广泛的目标模块和社区支持。许多在线服务提供了一个Python API。

2.Python是一门容易学的语言。低进入门槛使它成为新编程者理想的第一语言。

3.pandas, scikit-learn and Tensorflow的第三包的存在使的Python为先进的机器学习应用提供了很好的应用支持。

缺点

1. Python是一种动态类型语言,这意味着类型错误经常是不可预料的。

2.对于特定的统计和数据分析目的,R的大量包使它比Python更具优势。对于通用语言,更快更安全的Python稍有优势。

总结

Python是数据科学的一个很好的选择,而不仅仅是入门级的。大部分的数据科学过程围绕着ETL过程(提取转换加载)。另外Python的通用性非常好,譬如:Google的tensorflow使Python在机器学习领域成为了一个非常激动人心的语言。

Java

java是一个非常受欢迎的通用语言,可以在平台之间实现无缝移植。目前由甲骨文公司支持。

优点

1. 无处不在。许多现代的系统和应用程序是建立在java后台之上。

2.强类型。java确保类型安全,这对于关键任务的大数据应用程序来说是非常宝贵的。

3.java是一种高性能,通用的语言 。这使得它适合于编写高效的ETL生产代码和计算密集型的机器学习算法。

缺点

1. 对于特殊的分析和更专门的统计方案而言,java的冗长使得它不太可能首选。动态类型的脚本语言(如R和Python)可以获得更高的生产率。

2.Java相比于专精于数据领域的语言而言,没有大量的统计方法库。

总结

学习java作为第一选择的数据科学语言。许多公司都会希望=数据科学的生产代码能够直接集成到他们现有的代码库上,另外,你会发现java的性能和类型安全是真正的优势。但是,如果把需求特定于统计和数据科学范围。那么,拥有全面统计和数据科学包的Python和R绝对是不能忽视的选择。

Scala

Scala由Martin Odersky在2004发布,是一种能够运行在JVM上的语言。它是一种多范型语言,支持面向对象和函数式编程。

优点

1. 高性能集群计算。对于那些使用高容量数据集的人来说,Scala是一种理想的语言选择。

2.Scala能够编译成java字节码运行在JVM上。这使的Scala成为了一种强大的通用语言,同时也非常适合数据科学。

缺点

1. 如果你刚开始的话,Scala并不是一种可以直接启动和运行的语言。

2.语法和类型系统通常被描述的过为复杂,对于学习Python这样的动态语言的人来说不是一种容易学习的语言。

总结

当使用集群计算来处理大数据时,Scala + Spark是极好的解决方案。如果你有java和其他静态类型语言的经验,你会喜欢上Scala的功能。然而,如果您的应用程序没有那么多的数据需要处理时,您可能会发现使用其他语言(如R或Python)会是一个更好的选择。

以上就是这些语言的分析,我经常使用的是R,Python和SQL,这是因为我的工作集中在开发数据管道和ETL,并不是这是绝对的选择,根据自己的情况,如果你已经有了Java的学习经验,那么使用Scala触摸大数据是一个不错的选择。

感谢阅读!

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43609821/article/details/86443093
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-13 23:44:08
  • 阅读 ( 2046 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢