今天想和大家聊聊如何充分利用R Python,可能很多人都不太懂。为了让大家更好的了解,边肖为大家总结了以下内容,希望大家能从这篇文章中有所收获。
如果你从事数据科学工作,你可能会马上想到两种编程语言:R和Python。
事实上,R和Python本身就是很好的工具,但它们通常被认为是竞争对手。今天的推荐文章将比较这两者,而不是把它们当作两个选择。
如果你在谷歌搜索栏输入R vs Python,你会立刻得到很多关于一方优势的文章。
造成这一结果的原因之一是,人们根据对编程语言的选择,将数据科学领域分为阵营、R阵营和Python阵营。而且,这两个阵营往往无法和谐相处,其成员都认为自己的语言优于对方。因此,在某种程度上,区别不在于工具,而在于mdashmdash
为什么不同时使用呢?
数据科学领域很少有人同时使用Python和R。但事实上,虽然很多人只使用一种编程语言,但他们也想使用另一种软件的一些功能。例如,R用户有时希望使用Python的原生面向对象功能,一些Python用户也希望在R中使用各种统计分布。
上图为红和尚2018年第三季度的调查结果。这个调查数据来自于Stack Overflow和Github上语言的流行,很明显R和Python都很流行。因此,我们没有内在的理由不能在同一个项目中同时使用两者。我们的最终目标应该是更好的分析和更好的理解,编程语言的选择不应该成为实现这个目标的障碍。
R与Python回顾
让我们看看这些语言及其优缺点。
Python
自1991年发布以来,Python一直非常流行,并广泛用于数据处理。优点是:
面向对象语言。
用途广泛。
有很多扩展(功能)和强大的社区支持。
简单,容易理解和学习。
Python是熊猫、numpy和scikit-learn等软件包上机器学习活动的* * *选择。
但是与R不同,Python没有专门的统计计算包。
R
R * * *版本于1995年发布,从那以后,它成为了业内最常用的数据科学工具之一。
包含几乎所有可能的统计应用程序的安装包。CRAN目前拥有超过10k的包包。
配备齐全?可视化库,如ggplot2。
能够进行独立分析。
性能好的r并不是最快的语言,在处理大数据集时有时可能内存太大。
充分利用这两种语言
能否同时使用R的统计能力和Python的编程能力?当我们可以轻松地在R或Python脚本中嵌入SQL代码时,为什么不混合使用R和Python呢?
基本上有两种使用Python和r的方法.
在Python中使用R
PypeR
(http://bioinfo.ihb.ac.cn/softwares/PypeR/)
PypeR提供了一种通过管道从Python访问R的简单方法。PypeR也包含在Python的Package Index中,它提供了一种更方便的安装方法。当Python和R之间不需要频繁的交互数据传输时,PypeR特别有用,通过管道运行R,Python程序在进程操作系统平台(包括Windows、GNU Linux和Ma)上运行。
c OS)的子流程控制下,可以获得内存控制和可移植性方面的灵活性。
pyRserve
(https://pypi.org/project/pyRserve/)
pyRserve使用Rserve作为RPC连接网关。通过这种连接,可以在Python中用R设置变量,也可以远程调用R函数。R对象作为Python实现的类的实例公开,在许多情况下R函数作为这些对象的绑定方法。
-
rpy2
(https://rpy2.bitbucket.io/)
rpy2在Python进程中运行嵌入式R。它创建了一个框架,可以将Python对象转换为R对象,将它们传递给R函数,并将R输出转换回Python对象。rpy2更常用,并且在积极开发中。
在Python中使用R的一个优点是可以在Python中轻易使用R的强大软件包,如ggplot2,tidyr,dplyr等。举一个例子,让我们看看如何在Python中使用ggplot2进行映射。
-
基本场景
https://rpy2.github.io/doc/latest/html/graphics.html#plot
-
几何
https://rpy2.github.io/doc/latest/html/graphics.html#geometry
在R中使用Python
我们可以使用下面其中一种替代方法在Python中运行R脚本:
-
rJython
(https://r-forge.r-project.org/projects/rjython/)
该包通过Jython实现了Python的接口。它旨在让其他包能够与R一起嵌入python代码。
-
rPython
(https://cran.r-project.org/web/packages/rPython/index.html)
rPython又是一个允许R调用Python的包。它使得在R中运行Python代码,进行函数调用,分配和检索变量等成为可能。
-
SnakeCharmR
(https://github.com/asieira/SnakeCharmR)
SnakeCharmR是rPython的现代版本。它是'rPython'的一个分支,它用了'jsonlite'并且比rPython有很多进步之处。
-
PythonInR
(https://bitbucket.org/Floooo/pythoninr/)
PythonInR通过提供从内部与Python交互的函数,使得从R内部访问Python变得非常容易。
-
reticulate
(https://github.com/rstudio/reticulate)
网状软件包为Python和R之间的互操作性提供了一套全面的工具。在上述所有选择中,这个是最广泛使用的,更是因为它正在被Rstudio积极开发。Reticulate在R会话中嵌入Python会话,实现无缝、高性能的互操作性。该软件包使你能够将Python代码网格化为R,从而创建一个将两种语言编织在一起的新项目。
网状包提供以下设施:
-
以各种方式从R调用Python,包括R Markdown,获取Python脚本,导入Python模块以及在R会话中以交互方式使用Python。
-
R和Python对象之间的转换(例如,R和Pandas数据帧之间,或R矩阵和NumPy数组之间)。
-
灵活地绑定到不同版本的Python,包括虚拟环境和Conda环境。
R和Python都是非常强大的语言,其中任何一种语言都足以执行数据分析任务。但是,对于这两者来说肯定存在一些优缺点,如果我们能够利用两者的优势,一定可以做得更好。无论如何,对二者进行充分的了解能够让我们在更多的环境中进行工作。上述就是小编为大家分享的如何让充分利用R+Python了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
看完上述内容,你们对如何让充分利用R+Python有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50257.html