如果你从事在数据科学领域,提到编程语言,一定能马上想到 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.htmlRPy2: 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/138432Accessing 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谁更好?的详细内容,更多请关注Gxl网其它相关文章!

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

python和r哪个实用_R和Python谁更好?相关推荐

  1. 代写python作业 费用_代写Python or R作业、代做Python语言程序作业、代写Longitude留学生作业...

    代写Python or R作业.代做Python语言程序作业.代写Longitude留学生作业 日期:2018-11-13 10:19 Your task is to run some analysi ...

  2. python r语言 数据分析_R vs. Python,数据分析中谁与争锋?

    点击上方" CSDN ",选择"置顶公众号" 关键时刻,第一时间送达! 作者丨Sunil Kappal 译者丨安翔 R和Python两者谁更适合数据分析领域?在 ...

  3. python tqdm_推荐一些实用的的 Python 库

    halo,大家好,我是黑里怕,今天给大家分享一些Python库,希望可以给大家带来一些用处! 原作者:崔庆才 原出处:技术博客:静觅 原文链接:推荐一些实用的的 Python 库 一门语言好用.方便的 ...

  4. python建模分析实操_R和Python在数据建模方面的风格差异分析(下)

    废话不多说,接着上一篇分析讲. 3.创建神经网络模型R 与R中同样使用Python的先前示例类似,我们将使用Keras作为创建神经网络的关键包.我们还需要安装tensorflow并reticulate ...

  5. Jupyter lab add kernel Python+Julia+R 【jupyter Notebook 切换Python环境】and【在jupyter Notebook中安装第三方库】

    新增虚拟环境 conda create -n py2 python=2.7 进入python2的环境 conda activate py2 安装python2的内核并应用 python2 -m pip ...

  6. python二值化特征_R与Python手牵手:特征工程(数值型变换)

    原标题:R与Python手牵手:特征工程(数值型变换) 作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘.社交网络分析和机器学习等.希望与大家分享学习经验,推广并加深R语言在业界的应用. 邮箱:h ...

  7. python和access哪个实用_access和python学哪个

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  8. Python与R的区别和联系

    转自:http://bbs.pinggu.org/thread-3078817-1-1.html 有人说Python和R的区别是显而易见的,因为R是针对统计的,python是给程序员设计的,其实这话对 ...

  9. Python与R的争锋:大数据初学者该怎样选?

    在当下,人工智能的浪潮席卷而来.从AlphaGo.无人驾驶技术.人脸识别.语音对话,到商城推荐系统,金融业的风控,量化运营.用户洞察.企业征信.智能投顾等,人工智能的应用广泛渗透到各行各业,也让数据科 ...

  10. 数据分析用r还是python_想要从事数据分析,选择python还是R语言呢?

    数据分析是当下非常受欢迎的领域,而python和R语言在数据分析领域都有着非常重要的作用,那么想要从事数据分析,选择python还是R语言呢? 什么是python? python由 Guido van ...

最新文章

  1. Python常用函数--文档字符串DocStrings
  2. 未捕获ReferenceError:未定义$?
  3. 深入理解ThreadLocal
  4. html5之web worker
  5. 【LeetCode笔记】399. 除法求值(Java、图)
  6. 人类一败涂地电脑版_【天翼云盘】侠盗猎车手5(GTA5) 终极SVIP整合版,话不多说来波狠的!...
  7. Deep Learning(深度学习)网络资源
  8. BootStrap引用
  9. 30岁之前创业想成功必看
  10. opencv 识别火灾_使用深度学习和OpenCV早期火灾探测系统
  11. 空间参考(一)---墨卡托投影、高斯-克吕格投影、UTM投影的异同
  12. 建设工程项目全寿命周期管理是指_浅谈工程项目建设全寿命周期管理
  13. 主分区、扩展分区、逻辑分区、活动分区
  14. 超链接中 utm_source, utm_medium 等参数的含义是什么?
  15. latch mysql_关于MySQL latch争用深入分析与判断
  16. 浏览器使用默认端口9006连接TinyWebServer服务器连接不上?
  17. vijos 、洛谷 —— 珠心算测验(java实现)
  18. 用matlab读csv数据_matlab 读文件csvread textread用法实例
  19. 为什么毕业论文要查重?
  20. BS客户端安全使用解决方案

热门文章

  1. 磁带机技术的应用解析
  2. leapftp怎么用,掌握leapftp的使用方法只需6步
  3. 天正电气2014的安装
  4. coverity代码检测工具介绍_Coverity功能介绍
  5. android微信hook过滤检测,Hook实现Android 微信,陌陌 ,探探位置模拟
  6. Struts1与Struts2原理以及区别
  7. IPv4过渡到IPv6的方案选择
  8. java ipv6 转换_Java中Ipv4与Ipv6的转换
  9. C语言malloc函数详解(通俗易懂)
  10. java写的国有资产管理系统