旗下导航:搜·么
当前位置:网站首页 > Python教程 > 正文

R和Python谁更好?【Python教程】,Python,R

作者:搜教程发布时间:2019-11-27分类:Python教程浏览:39评论:0


导读:假如你处置在数据科学范畴,提到编程言语,一定能立时想到R言语和Python言语假如你在Google中搜刮“RvsPython”,可以看到很多关于二者谁更好的议论,但实...

假如你处置在数据科学范畴,提到编程言语,一定能立时想到 R 言语和 Python言语假如你在 Google 中搜刮“R vs Python”,可以看到很多关于二者谁更好的议论,但实在无论是 R 照样 Python,两个都是很优异的东西。


涌现这类征象的缘由之一是,应用者们基于自身所应用的编程言语,将数据科学范畴分为几个阵营,包括 R 阵营和 Python 阵营。两个阵营的人都异常置信自身挑选的言语远好过对方的。所以在某种水平上,这类不合并不悉数来自于东西自身,也有来自应用者的缘由。


为何差别时应用两种言语?


实在,在数据科学的圈子里,也存在同时应用 Python 和 R 的人,但比例是异常小。别的,有一大部份对峙应用某一种言语的人,同时也希望能掌握另一种言语的某些功用。比方,R 的应用者有时候很须要 Python 的面向对象属性,与此同时,一些 Python 用户也想应用 R 壮大的统计散布功用。


上图显现了由 Red Monk 在 2018 年第三季度所举行的观察的效果。此效果基于 Stack Overflow 和 Github 上言语的受欢迎水平,很明显 R 和 Python 的得分都很高。从言语自身来讲,并非限定我们不能在统一项目中应用二者的缘由。而我们的最终目标要做更有洞察、有价值的剖析,而挑选哪一种言语不应该成为这一过程当中的障碍。


纵观 R 和 Python


下面我们可以先从几个差别方面对照这两种言语,离别看看它们的优缺点。



  • Python


自 1991 年宣布以来,Python 就极为受欢迎,尤其在数据处置惩罚方面被普遍应用。它云云受欢迎有以下几个缘由:


  • 面向对象言语

  • 通用性

  • 可扩展性强,壮大的社区支撑

  • 易于明白和进修

  • Pandas、Numpy 和 Scikit-learn 等包使 Python 成为机械进修的极佳挑选


但是,与 R 差别的是,Python 没有用于统计盘算的专用包。



  • R


R 初次宣布于 1995 年,随即成为数据科学范畴应用最广的东西之一。


  • 险些包括你能想到的任何一种统计应用东西包。当前 CRAN 有凌驾 10 万个包。

  • 具有极好的可视化东西包,如 ggplot2。

  • 可以举行自力剖析。


从机能上来讲,R 并非速率最快的言语,而且在处置惩罚大型数据集时,能够对内存斲丧较大。


“双剑合璧”


是不是可以同时应用 R 超凡的统计才能和 Python 的编程才能呢?我们可以轻松地将 SQL 代码与 R 或 Python 相连系写成一个剧本,为何不把 R 和 Python 也连系一同应用呢?


将 Python 与 R 同时应用在统一个项目中,有两个基础的手腕,接下来就和人人分享这两个要领:


R within Python


  • PypeR


PypeR 供应了一种可以让 R 衔接 Python 的简朴门路,即经由过程管道 (pipe)。PypeR 也存在于 Python 的东西包当中,供应了更便利的装置体式格局。当 Python 和 R 之间不须要频仍举行数据传输时,PypeR 异常实用。当我们经由过程管道运转 R 时,Python 顺序在子流程掌握、内存掌握和跨操纵系统(包括 Windows、GNU Linux 和 Mac OS)移植的天真度都比较高。


  • pyRserve


pyRserve 应用 Rserve 作为 RPC 的衔接网关,经由过程这类衔接体式格局,用户可以在 Python 中设置 R 的变量,同时 R 的函数也可以被长途挪用。


  • rpy2


ryp2 可以在 Python 历程中运转内嵌的 R 言语。它创建了一种框架,可以将 Python 对象转化为 R 对象,再把它们传入 R 函数,末了将 R 输出的效果传回给 Python 对象。



在 Python 中挪用 R 言语的长处之一是,我们可以在 Python 中方便地应用 R 言语壮大的东西包,如 ggplot2、tidyr、dplyr 等。下面我们经由过程一个简朴的例子来看看如安在 Python 中应用 ggplot2。


  • Basic Plot


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


  • Geometry


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


关于 rpy2 的材料

rpy2官方文档

https://rpy2.github.io/doc/latest/html/index.html

RPy2: Combining the Power of R + Python for Data Science:

https://community.alteryx.com/t5/Data-Science-Blog/RPy2-Combining-the-Power-of-R-Python-for-Data-Science/ba-p/138432

Accessing R from Python using RPy2:

https://www.r-bloggers.com/accessing-r-from-python-using-rpy2/


Python with R


我们可以经由过程以下几个东西在 Python 中运转 R 言语的剧本:


  • rJython


该东西包经由过程 Jython 布置了衔接 Python 的界面,供应了将 Python 与 R 连通的接口。


  • rPython


rPython 也是一个在 R 言语中挪用 Python 的东西包,它可以在 R 中运转 Python 代码,举行函数的挪用,以及变量的分派和猎取等。


  • SnakeCharmR


SnakeCharmR 是改良版的 rPython,它源于 rPython 的 'jsonlite' 分支,比拟于 rPython 有诸多提拔。


  • PythonInR


PythonInR 可以让用户异常方便地在 R 言语中应用 Python,供应了可与 Python 举行交互的函数。


  • reticulate


Reticulate 包供应了一整套可以使 Python 与 R 互相操纵的东西。在所有上面所提到的东西中,这个应用最为普遍,大部份缘由在于它是由 Rstudio 主导开辟的。Reticulate 在 R 模块中内嵌了 Python 模块,使两种言语可以无缝且高机能地互相操纵。应用该东西包,我们可以把 Python 代码 “编织” 进 R 言语中,制造了一种将两种言语相连系的新型项目。



Reticulate 包供应了以下功用:


  • 供应多种在 R 言语中挪用 Python 的体式格局,包括 R Markdown、导入 Python 剧本、引入 Python 模块,以及在 R 模块中应用 Python。

  • 供应 R 对象和 Python 对象间的互相转换(比方,R 与 Pandas 数据框的转换,或 R 矩阵与 NumPy 数组的转换)。

  • 可与差别版本的 Python 举行天真的协作,包括虚拟环境和 Conda 环境。


关于 reticulate 东西包的资本:

该文档供应了很多实例来助你入门:

https://rstudio.github.io/reticulate/

应用 reticulate 包,在 R 言语中应用 Python:

https://longhowlam.wordpress.com/2017/04/10/test-driving-python-integration-in-r-using-the-reticulate-package/

东西包中的 “蛇”:用 reticulate 将 Python 与 R 联络:

https://www.mango-solutions.com/blog/snakes-in-a-package-combining-python-and-r-with-reticulate


结论


R 和 Python 都是完全且稳固的言语,都足以完成一项数据剖析使命。虽然二者均存在一些各自的优劣势,假如能利用好它们的长处,我们就可以更好地完成使命。总之,同时掌握两种言语会使我们越发天真,从而在多种环境下自若地事情。

【引荐课程:Python视频教程】

以上就是R和Python谁更好?的细致内容,更多请关注ki4网别的相干文章!

标签:PythonR


欢迎 发表评论: