Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。
最近,一些读者向我们询问在数据科学方面最好的编程语言,R和Python立刻浮现在了我的脑海里。那么,如何在这两大巨头之间做出选择呢?
我们最近观看了一个出色的视频,围绕着这两种语言的近期进展,正好可以解决这个问题。该视频来自Domino数据实验室的首席数据科学家Eduardo Ario de la Rubias。
我们欣赏这个视频的主要原因在于,它展示了迄今为止Python和R语言的主要进步。对于数据科学,这两种语言都已变得十分合适。
有人指出这两种语言各自的传统缺陷(例如:用Python进行数据可视化,或者用R进行数据整理),幸而,近年来发行了一些扩展包,比如:用于python的Altair,或是用于R的dplyr,使这些弱点可得到有效缓解。
本文是对视频中所讨论的当前进展的总结。我们推荐网站上完整的视频(地址:https://blog.dominodatalab.com/video-huge-debate-r-vs-python-data-science/),本文也对视频中所提到的库加了链接。
对于本文,我们有两个主要目标:
对于有经验的数据科学家,我们希望在介绍的库中,有那么一两个可以解决你在选择编程语言时遇到的烦恼和痛苦。
对于初级的数据科学家,我们介绍了对两种语言均适用的很棒的应用,所以你可以选择其中任意一种。
最后,在本文的末尾,我们会基于你的背景和目标,推荐最适合你开展学习的语言。 首先是视频中的总结:
对于Python的情况
要点:“我希望会有一个更好的方法。高级工具会让你更加清晰地看到看到软件的结构,这蕴含着极大的价值。”- Guido van Rossum Guido van Rossum是Python编程语言的创始人。
在数据科学方面,Python有哪些优点?
python开发于1989,距今已有一段时间,是一种面向对象的编程语言。
IPython/Jupyter优秀的记事本式集成开发环境。
大型的生态系统。例如,Scikit-Learn每个月会接收15万到16万个独立的访问。
Continuum Analytics公司开发的Anaconda使得扩展包的管理非常方便。
-
Pandas库使得对数据框架和时间序列数据的操作非常简单。
Python语言在数据科学方面的进展
1. 收集数据
Feather(快速读写磁盘数据)
Ibis(以很Python的方式存取数据集)
ParaText(从磁盘获取混合记录和界定数据并存入内存的最快方式)
bcolz(解决数据量大于内存的问题)
2.数据可视化
Altair(类似于Matplotlib 2.0 ,对用户更加友好)
Bokeh(web可重用组件)
致力于浏览器演示的交互可视化
可嵌入交互式可视化
D3.js可出色地用于Python
已有可借鉴的大型模板库
Geoplotlib(交互式地图)
可用极简的方式创建地图
可将名称,维度,精度作为输入列简洁的清单
3. 清洗和转化数据
Blaze(将NumPy用于大数据)
xarray(处理n维数据)
Dask(并行计算)
4. 建模
Keras(简单的深度学习)
PyMC3(概率类编程)
包含来自学术实验室的高端研究
强大的贝叶斯统计模型
想看这些库的教程吗?在下面留言让我们知道是哪一种吧!
对于R的情况
要点:“要用接口调用可获得的优秀数字算法" - John Chambers
John Chambers 创立了S语言--R语言的前身,其精髓与R语言相通
在数据科学方面,R语言的出色之处在于?
R语言开发与1992年,晚于Python,从Python中借鉴了经验
Rcpp使R语言扩展C 非常容易
RStudio是非常成熟并出色的集成开发系统
CRAN集合了机器学习算法和数据工具(笔者添加的注解)
Caret包可以从一个接口简单地调用不同的算法,就像Scikit-Learn之于Python(笔者添加的注解)
R语言在数据科学方面的进展
1.收集数据
Feather(快速读写磁盘数据)
Haven(与SAS, Stata, SPSS 数据交互)
Readr(对read.csv重实现优化)
JsonLite(处理 JSON 数据)
2.数据可视化
ggplot2(最近有大规模地升级)
最近有非常重要的升级 (届时旧的准则将中断)
可以解析数据并缩放显示
htmlwidgets(可重用组件)
为R语言带来最优秀的JavaScript视觉化
有出色的模板库可供借鉴
Leaflet(web交互式地图)
Tilegramsr(比例化地图)
3. 清洗并转化数据
Dplyr (功能非常多)
R语言中应该排在第一位的方法
有许多设计巧妙的结点
整理数据更加人性化
Broom(整理模型)
整合模型输出(需要参考模型系数)
可整合, 扩增, 扫描
Tidy_text(整理数据)
4. 建模 MXNet(简单的深度学习)
用R语言建立深度神经网络,操作界面直观
略差于Keras
TensorFlow
想看这些库的教程吗?在下面留言让我们知道是哪一种吧!
我们的推荐
正如所见,这两种工具都发展得很好,各有一套出色的工具。虽然有点老掉牙,但是仍然得说:对于如何选择语言的问题,并没有完全标准适用的答案。
假如你刚刚开始学习,有一个简单的办法:根据你的背景来选择。举个例子,假如你有计算机或开发背景,Python会更适合你。另一方面,如果你有数据分析的背景,使用R语言对你来说会更直接一些。
在EliteDataScience网站, 我们很喜欢R语言,但通常更偏向于Python。Python是一种通用的编程语言,你可以用它做很多想做的事情。
Python 还有出色的Keras 包,正如上文所提及的,它使深度学习更易于掌握。
英文原文:https://elitedatascience.com/r-vs-python-for-data-science 译者:leeafay
本文转载于微信公众号: Python程序员(pythonbuluo),更多微信文章请扫描关注公众号:
|