学习如何将Python和R结合使用,以便在单个数据科学项目中充分利用它们

转载自DataCamp:https://www.datacamp.com/community/tutorials/using-both-python-r

利用Python和R的优点
学习如何将Python和R结合使用,以便在单个数据科学项目中充分利用它们。
数据科学已成为当今每个行业不可或缺的一部分。从银行业到保险业再到医疗保健,每天都会产生大量的数据。因此,我们必须能够利用这些海量数据来产生可操作的见解并对其进行处理。目前市场上有许多编程语言形式的工具。在所有这些语言中,Python和R似乎领先于竞争对手。

双方的Python和[R正在被广泛应用于数据的科学世界。这两种语言都有各种各样的工具,可提供一系列出色的功能,非常适合数据科学场景。虽然Python是一种用于各种应用程序的通用语言,但R是一种用于统计计算和图形的编程语言和环境。

Python和R生态系统概述
让我们来看看这些语言的各个方面,以及它们的优点和不太好。

Python编程语言

Python是一种解释性的,高级的通用编程语言。它由Guido Van Rossum于1991年创建并发布。自发布以来,Python在包括数据科学在内的各个领域都非常受欢迎。今天的Python是世界上发展最快的编程语言之一。

其广受欢迎的一些原因是:

面向对象的语言
一般用途
拥有令人难以置信的社区支持
简单易懂,易于学习
拥有像熊猫,numpy和scikit-learn这样的高效套餐,使其成为机器学习活动的绝佳选择。
然而,当涉及统计计算时,python落后并且没有专门的包,不像其对应的R.

R编程语言

R本质上是统计计算和图形的软件,由统计计算的R基础支持。它首次出现于1993年8月,并于1995年首次稳定发布,此后统计人员和数据挖掘者广泛使用它进行统计计算。

使R在其他语言中脱颖而出的一些功能包括:

由几乎所有可以想到的统计应用程序组成的包。CRAN目前拥有超过10k的包。
配备了优秀的可视化库,如ggplot2。
能够使用内置包进行独立分析。
但是有一个缺点。性能明智的R不是最快的语言,有时在处理大型数据集时可能是内存贪婪。

Datacamp上有一个很好的信息图,展示了这两种编程语言如何相互关联。该信息图分析了R的优势在于Python的优势,反之亦然,旨在从数据科学和统计的角度提供这两种编程语言之间的基本比较。虽然信息图在2015年发布,但今天的所有要点都非常相关。

Imgur

这是Infograph 的链接。

一起使用Python和R.
R和Python本身就是很好的工具,但往往被认为是竞争对手。我们不应该以这种方式看待它们,而应该尝试利用两种语言的优点,这样我们才能拥有两全其美的优势。

如今,数据科学社区的人员通常只使用一种语言。但是,仍然有人同时使用Python和R,但它们的百分比很小。另一方面,有很多人只致力于一种编程语言,但希望他们能够访问其对手的某些功能。例如,R用户有时会渴望Python本机的面向对象能力,同样,一些Python用户渴望获得R中可用的全部统计分布。

下图显示了Red Monk 在2018年第三季度进行的调查 结果。这些结果基于Stack Overflow 和Github上 语言的流行, 并清楚地表明R和Python的评级都很高谈到数据科学活动。因此,没有固有的理由说明为什么我们不能在同一个项目上同时使用它们。我们的最终目标应该是做更好的分析并获得更好的见解,选择编程语言不应成为实现这一目标的障碍。

如何在单个项目中使用Python和R?
当谈到在R或Python脚本中嵌入SQL时,我们不打击眼睑。那么为什么不以同样的方式利用R的统计能力和Python的编程能力呢?是的,它可以完成,并且有一些库可以很好地处理这些转换。

基本上有两种 方法 可以在一个项目中同时使用Python和R.

R在Python中
这意味着在Python脚本中调用R函数。为此目的创建的一些库是:

  1. PypeR
    PypeR提供了一种通过管道从Python访问R的简单方法。PypeR也包含在Python的Package Index中,它提供了一种更方便的安装方式。当Python和R之间不需要频繁的交互式数据传输时,PypeR特别有用。通过管道运行R,Python程序在流程操作系统平台(包括Windows)的子流程控制,内存控制和可移植性方面获得灵活性, GNU Linux和Mac OS。

将Python对象转换为R对象的约定
2. pyRserve
pyRserve是为此目的而创建的另一个库。它使用 Rserve 作为RPC连接网关。通过这种连接,可以在Python中用R设置变量,也可以远程调用R函数。R对象作为Python实现的类的实例公开,在许多情况下R函数作为这些对象的绑定方法。

  1. rpy2
    rpy2库的使用频率高于前两个。原因是rpy2正在积极和积极地发展。它在Python进程中运行嵌入式R. 它创建了一个框架,可以将Python对象转换为R对象,将它们传递给R函数,并将R输出转换回Python对象。

在Python中使用R的一个优点是我们可以使用R的强大软件包,如ggplot2,tidyr,dplyr等。很容易在Python中。作为一个例子,让我们看看如何在Python中轻松使用ggplot2进行映射。

基本情节

https://rpy2.github.io/doc/latest/html/graphics.html#plot

几何

https://rpy2.github.io/doc/latest/html/graphics.html#geometry

资源
有关rpy2的安装和工作的深入审查和详细知识,您可能需要查看以下资源:

rpy2的官方文档
RPy2:结合R + Python的力量,用于数据科学
使用RPy2从Python访问R
R中的Python
也可以使用以下替代方法之一在R中运行Python脚本:

  1. rJython
    该包通过Jython实现了Python的接口。它旨在让其他包能够与R一起嵌入python代码。

  2. rPython
    rPython又是一个允许R调用Python的Package。它使得从R运行Python代码,进行函数调用,分配和检索变量等成为可能。

  3. SnakeCharmR
    SnakeCharmR是rPython的现代大修版本。它是来自’rPython’的一个分支,它使用’jsonlite’并且比rPython有很多改进。

  4. PythonInR
    PythonInR通过提供从内部与Python交互的函数,使得从R内部访问Python变得非常容易。

  5. 网纹
    该 网纹 包提供了一套全面的Python和R.之间的互操作工具,在所有上述选择,这个人是使用最广泛的,更是因为它是由Rstudio正在积极发展。
    Reticulate 在R会话中嵌入Python会话,实现无缝,高性能的互操作性。该软件包使您能够将 Python代码网格化为R,从而创建一个将两种语言编织在一起的新项目。

该 网纹包 提供以下功能:

从R以多种方式调用Python,包括R Markdown,获取Python脚本,导入Python模块,以及在R会话中以交互方式使用Python。
R和Python对象之间的转换(例如,在R和Pandas数据帧之间,或在R矩阵和NumPy数组之间)。
灵活地绑定到不同版本的Python,包括虚拟环境和Conda环境。
资源
使用网状 包的一些很好的资源 是:

该 文档 是非常强大的,有很多的例子和用例来帮助你开始。
https://longhowlam.wordpress.com/2017/04/10/test-driving-python-integration-in-r-using-the-reticulate-package/
包装中的蛇:将PYTHON和R组合在一起
结论
R和Python都是出色的工具,几乎足以从头开始执行数据科学任务。有人甚至可能不需要在一个项目中同时使用它们。但是,对两者的了解都可以派上用场,特别是让我们可以选择在不同的环境中工作。正如所说,重点应放在技能而不是工具上。因此,如果能够帮助我们轻松解决手头的问题,我们应该愿意学习新的工具和语言。

猜你喜欢

转载自blog.csdn.net/qq_21201679/article/details/89784957