快捷搜索:  汽车  科技

r语言和python哪个好?R语言和Python语言在数据科学方面的比较

r语言和python哪个好?R语言和Python语言在数据科学方面的比较对于初级的数据科学家,我们介绍了对两种语言均适用的很棒的应用,所以你可以选择其中任意一种。对于有经验的数据科学家,我们希望在介绍的库中,有那么一两个可以解决你在选择编程语言时遇到的烦恼和痛苦。有人指出这两种语言各自的传统缺陷(例如:用Python进行数据可视化,或者用R进行数据整理),幸而,近年来发行了一些扩展包,比如:用于python的Altair,或是用于R的dplyr,使这些弱点可得到有效缓解。本文是对视频中所讨论的当前进展的总结。我们推荐网站上完整的视频(地址:https://blog.dominodatalab.com/video-huge-debate-r-vs-python-data-science/),本文也对视频中所提到的库加了链接。对于本文,我们有两个主要目标:

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/),本文也对视频中所提到的库加了链接。

r语言和python哪个好?R语言和Python语言在数据科学方面的比较(1)

对于本文,我们有两个主要目标:

  1. 对于有经验的数据科学家,我们希望在介绍的库中,有那么一两个可以解决你在选择编程语言时遇到的烦恼和痛苦。

  2. 对于初级的数据科学家,我们介绍了对两种语言均适用的很棒的应用,所以你可以选择其中任意一种。

最后,在本文的末尾,我们会基于你的背景和目标,推荐最适合你开展学习的语言。首先是视频中的总结:

对于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

  • 已有可借鉴的大型模板库

Geoplotlib(交互式地图)

  • 可用极简的方式创建地图

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

3. 清洗和转化数据

Blaze(将NumPy用于大数据)

  • 将NumPy或Pandas的句法转化进数据计算系统

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

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

xarray(处理n维数据)

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

  • 多维Pandas数据框架


Dask(并行计算)

  • 动态任务调度系统

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

4. 建模

Keras(简单的深度学习)

  • 对Theano和Tensorflow适用的更高级接口

  • 我们为Keras的初学者写了一个完整的教程:Keras tutorial for beginners

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(最近有大规模地升级)

  • 最近有非常重要的升级 (届时旧的准则将中断)

  • 可以解析数据并缩放显示

htmlwidgets(可重用组件)

  • 为R语言带来最优秀的JavaScript视觉化

  • 有出色的模板库可供借鉴

Leaflet(web交互式地图)

  • 优美的JavaScript地图,可嵌入web应用

Tilegramsr(比例化地图)

  • 创建人口比例化的地图

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

3. 清洗并转化数据

Dplyr(功能非常多)

  • R语言中应该排在第一位的方法

  • 有许多设计巧妙的结点

  • 整理数据更加人性化

Broom(整理模型)

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

  • 可整合 扩增 扫描

Tidy_text(整理数据)

  • 类似于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

猜您喜欢: