r语言python对比_R语言和Python语言在数据科学方面的比较:当今进展的总结

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

最近,一些读者向我们询问在数据科学方面最好的编程语言,R和Python立刻浮现在了我的脑海里。那么,如何在这两大巨头之间做出选择呢?

我们最近观看了一个出色的视频,围绕着这两种语言的近期进展,正好可以解决这个问题。该视频来自Domino数据实验室的首席数据科学家——Eduardo Ariño 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(快速读写磁盘数据)快速,轻量级,对于各种文件类型都能输出易用的二进制格式.

使内存读入读出数据框架尽可能地简单

无关语言(Python和R语言均可)

高速读写性能(对比于一般的70MB/s,CSV文件的读写速度可达到600MB/s)

在流水线中,可以便捷地在两种语言之间传递数据

Ibis(以很Python的方式存取数据集)连接了本地Python环境和远程存储(例如Hadoop或者SQL)之间的空白

可结合Python其他的生态系统

ParaText(从磁盘获取混合记录和界定数据并存入内存的最快方式)用C++函数库在多核机器上并行地读取文本文件

结合Pandas使用: paratextload_csv_to_pandas"data.csv"

可使CSV文件的读取速度达到2.5GB/s

安装略微有些困难

bcolz(解决数据量大于内存的问题)压缩列存储

可定义Pandas类的数据结构, 压缩并存储在内存中

解决低速内存的性能瓶颈

2.数据可视化

Altair(类似于Matplotlib 2.0 ,对用户更加友好)有更多的时间理解数据和其含义

Altair的API是简便友好的,具有一致性

用一小段代码,就可以实现赏心悦目、高效的可视化界面

使用有条理的DataFrame作为数据源

使用Pandas和SQL的group-by操作来整理数据,显示其视觉性的特征

主要用来绘制静态图

Bokeh(web可重用组件)致力于浏览器演示的交互可视化

可嵌入交互式可视化

D3.js可出色地用于Python

已有可借鉴的大型模板库可用极简的方式创建地图

可将名称,维度,精度作为输入列简洁的清单

3. 清洗和转化数据

Blaze(将NumPy用于大数据)将NumPy或Pandas的句法转化进数据计算系统

同样的Python代码,可以跨数据存储系统查询数据

利于未来的数据转换和操作

xarray(处理n维数据)核心Pandas数据结构的N维数组 (e.g. 如果数据有时间组成同样适用)

多维Pandas数据框架

Dask(并行计算)动态任务调度系统

“大数据”收集,如平行数组,数据框架,列出扩展的交互接口,如NumPy, Pandas, 或大于内存或者分布式环境的Python迭代器等

4. 建模

Keras(简单的深度学习)对Theano和Tensorflow适用的更高级接口

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(快速读写磁盘数据)与Python相同

Haven(与SAS, Stata, SPSS 数据交互)读取 SAS 并使其形成数据框架

Readr(对read.csv重实现优化)read.csv需要将字符串转化成因子,速度较慢

创建了一种数据特性应有的机制,使其在生产方面有更强的鲁棒性

比read.csv的速度快得多

JsonLite(处理 JSON 数据)巧妙地将JSON转化成矩阵或者dataframe

2.数据可视化

ggplot2(最近有大规模地升级)最近有非常重要的升级 (届时旧的准则将中断)

可以解析数据并缩放显示为R语言带来最优秀的JavaScript视觉化

有出色的模板库可供借鉴

Leaflet(web交互式地图)优美的JavaScript地图,可嵌入web应用创建人口比例化的地图

可以创建更多有趣的地图,不仅局限于基于人口密度标注主要城市。

3. 清洗并转化数据

Dplyr (功能非常多)R语言中应该排在第一位的方法

有许多设计巧妙的结点

整理数据更加人性化

Broom (整理模型)整合模型输出(需要参考模型系数)

可整合, 扩增, 扫描类似于dplyr,ggplot2, 以及其他整理工具,可对文本进行最小化

通过R语言进行自然语言处理更加容易

4. 建模

MXNet (简单的深度学习)用R语言建立深度神经网络,操作界面直观

略差于Keras现在有R语言的接口

想看这些库的教程吗?在下面留言让我们知道是哪一种吧!

我们的推荐

正如所见,这两种工具都发展得很好,各有一套出色的工具。虽然有点老掉牙,但是仍然得说:对于如何选择语言的问题,并没有完全标准适用的答案。

假如你刚刚开始学习,有一个简单的办法:根据你的背景来选择。举个例子,假如你有计算机或开发背景,Python会更适合你。另一方面,如果你有数据分析的背景,使用R语言对你来说会更直接一些。

在EliteDataScience网站, 我们很喜欢R语言,但通常更偏向于Python。Python是一种通用的编程语言,你可以用它做很多想做的事情。

Python 还有出色的Keras 包,正如上文所提及的,它使深度学习更易于掌握。英文原文:https://elitedatascience.com/r-vs-python-for-data-science

译者:leeafay

你可能感兴趣的:(r语言python对比)