如何让充分利用R+Python

技术如何让充分利用R+Python今天就跟大家聊聊有关如何让充分利用R+Python,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如果你从事数据科学的工作,可能会

今天想和大家聊聊如何充分利用R Python,可能很多人都不太懂。为了让大家更好的了解,边肖为大家总结了以下内容,希望大家能从这篇文章中有所收获。

如果你从事数据科学工作,你可能会马上想到两种编程语言:R和Python。

事实上,R和Python本身就是很好的工具,但它们通常被认为是竞争对手。今天的推荐文章将比较这两者,而不是把它们当作两个选择。

如果你在谷歌搜索栏输入R vs Python,你会立刻得到很多关于一方优势的文章。

造成这一结果的原因之一是,人们根据对编程语言的选择,将数据科学领域分为阵营、R阵营和Python阵营。而且,这两个阵营往往无法和谐相处,其成员都认为自己的语言优于对方。因此,在某种程度上,区别不在于工具,而在于mdashmdash

如何让充分利用R+Python

为什么不同时使用呢?

数据科学领域很少有人同时使用Python和R。但事实上,虽然很多人只使用一种编程语言,但他们也想使用另一种软件的一些功能。例如,R用户有时希望使用Python的原生面向对象功能,一些Python用户也希望在R中使用各种统计分布。

如何让充分利用R+Python

上图为红和尚2018年第三季度的调查结果。这个调查数据来自于Stack Overflow和Github上语言的流行,很明显R和Python都很流行。因此,我们没有内在的理由不能在同一个项目中同时使用两者。我们的最终目标应该是更好的分析和更好的理解,编程语言的选择不应该成为实现这个目标的障碍。

R与Python回顾

让我们看看这些语言及其优缺点。

如何让充分利用R+Python

Python

自1991年发布以来,Python一直非常流行,并广泛用于数据处理。优点是:

面向对象语言。

用途广泛。

有很多扩展(功能)和强大的社区支持。

简单,容易理解和学习。

Python是熊猫、numpy和scikit-learn等软件包上机器学习活动的* * *选择。

但是与R不同,Python没有专门的统计计算包。

如何让充分利用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)的子流程控制下,可以获得内存控制和可移植性方面的灵活性。

如何让充分利用R+Python

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更常用,并且在积极开发中。

如何让充分利用R+Python

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

  • 基本场景

  • 如何让充分利用R+Python

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

如何让充分利用R+Python

  • 几何

  • 如何让充分利用R+Python

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

如何让充分利用R+Python

在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调用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

(0)

相关推荐

  • 怎么开源你的Python库

    技术怎么开源你的Python库这篇文章主要介绍了怎么开源你的Python库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、源码将代码放在 GitHub

    攻略 2021年10月26日
  • css 文字变浅效果

    技术css 文字变浅效果 css 文字变浅效果!doctype htmlhtml lang="en"head meta charset="UTF-8" meta name="viewport

    礼包 2021年11月25日
  • PostgreSQL中表的继承和分区怎么实现

    技术PostgreSQL中表的继承和分区怎么实现这篇文章主要介绍PostgreSQL中表的继承和分区怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、表的继承: 这个概念对于很多已经

    攻略 2021年11月26日
  • jquery有哪些读取节点的方法

    技术jquery有哪些读取节点的方法本篇内容介绍了“jquery有哪些读取节点的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年11月15日
  • 一起刷LeetCode

    技术一起刷LeetCode 一起刷LeetCode事件背景
    寒假在家没事,准备重新开始每日算法训练。
    在写题解的过程中发现,或许应该把它们统一记录下来。
    如何刷算法
    刷算法的目的有三
    1. 练习某一门语

    礼包 2021年12月23日
  • Java复习巩固

    技术Java复习巩固 Java复习巩固第三天:数组,方法
    1.什么是数组
    数组:内存中开辟的一块连续的空间,是用来临时存储同种数据的,要想永久性存储数据,可以存储在数据库里面,也可以通过流存储到文件中。

    礼包 2021年12月3日