根据需求,为了那些希望知道在数据科学方面选择 Python 还是 R 编程语言的人,我发布了这篇指导文章。你可能在数据科学方面是个新手,或者你需要在一个项目中选出一个语言,这篇文章可能会帮助到你。

非免责声明:在最大的数据科学家雇主之一(Deloitte)中,我是一个数据科学家的管理者。我也对 R 和 Python 有几十年的了解。我是个语言不可知论者,但是参与到 Python 社区已经有15年左右了。

还会有第三种选择

Hadley Wickham, RStudio 的首席数据科学家,已经给出了答复“使用‘and’替代‘vs’”。由此,同时使用Python/R 是我将提到的第三种选择。这个选项引起了我的好奇心,而且我会在本文末尾介绍这一点。

如何比较 R 和 Python

下面是这两种语言之间一些值得比较的因素,这并不是一个完全的列表。

历史:R 和 Python 具有明显不同的历史,有时候会交叉。
社区:通过实际调查发现的很多复杂的社会人类学因素。
性能:详尽的比较以及为什么比较起来这么难。
第三方支持:模块,代码库,可视化,存储库,组织和开发环境。
用例:有些任务和工作类型适合其中一种或者另一种。
我们不能和睦相处吗?Python 调用 R 和 R 调用 Python 。
预测 R 还是 Python:吃你自家的狗粮的一个预测练习。
偏好:最终答案。
历史

简短概要:

ABC -> Python 发布(1989 Guido van Rossum)-> Python 2 (2000) -> Python 3 (2008)
Fortan -> S(贝尔实验室)-> R 发布(1991 Ross Ihaka 和 Robert Gentleman)-> R 1.0.0 (2000) ->R 3.0.2 (2013)
社区

当比较Python和R的用户时,首先要记住的就是:

只有50%的Python用户与R重叠
那是假定所有R程序员会用“科学和数字(Scientific and Numeric)”来称呼他。我们也确定,无论程序员的等级如何,这个分布都是正确的。

要进一步了解Python“宣传”,请阅读关于Python宣传调查结果:https://www.linkedin.com/puls...

如果我们只看科学和数字社区,这就会把我们带到第二类社区,哪个社区?在所有的科学和数字社区中有一些子社区。尽管也许还会有一些重叠,因为你会怀疑他们与大一些的R/Python社区之间的交互方式确实不同。

一些使用Python/R的子社区的例子:

深度学习
机器学习
高级分析
预测分析
统计
探索和数据分析
学术可惜研究
几乎无穷无尽的计算领域研究
然而每个领域看起来都只致力于一个专门社区,你会发现R在如统计和探索之类的领域中更加流行。不久前,你可能会使用R进行构建运行或者做一些非常有意义的探索,而使用的时间比安装Python或者用它来做相同的探索的时候短得多。

这一切都被颠覆性的技术改变了,他们是Jupyter notebook和Anaconda。
注:Jupyter Notebokks:在浏览器中可以编辑Python/R代码;Anaconda:可以为Python和R简单的安装和打包
既然你可以在一个方便提供报告和现成的分析的环境启动运行,就已经排除了一个横在那些想要完成这些任务的人和他们喜爱的语言之间的障碍。Python现在可以使用独立于平台的方式打包,而且可以更快的提供快速、低成本的分析比。

在社区中影响了语言选择的另一个区别就是“开源”思想。不仅是开源库,还有致力于开源的协作社区的影响。讽刺的是,开源许可软件,像Tensorflow这样的软件到GNU Scientific Library(各自为Apache和GPL),他们看起来都有Python和R绑定。尽管有R的公共版权,还是有更多人纯粹的支持Python社区。另一方面,看起来有更多的企业支持R,特别是那些有统计方面历史的。

最后,考虑到社区和协作,在Github上Python的支持更多。如果我要看最新Python包趋势,我会看到有超过3.5万个关注的Tensorflow之类的项目。相反,如果我看R包的最新趋势,像Shiny,Stan…之类的包,他们都少于2千个关注。

性能

性能提升很困难,因为有太多的指标和情况需要测试了,也很难基于特定的硬件来测试。一些操作在某个语言里已经做了优化,但其它语言里却还没有实现。确实,你可能会失去一些东西,比如:一些人会抱怨,一些人会离开,整个分析报告也可能会被丢弃。无论如何,生活还是要继续… …

本文固定链接: http://www.js-code.com/python/python_50464.html