充分利用Python和R的优点

本文概述

  • Python和R生态系统概述
  • 一起使用Python和R
  • 如何在单个项目中同时使用Python和R?
数据科学已成为当今每个行业不可或缺的一部分。从银行业务到保险再到医疗保健, 每天每秒都会生成大量数据。因此, 当务之急是我们应该能够利用大量数据来产生可行的见解并对其进行研究。当今市场上有许多以编程语言形式出现的工具。在所有这些语言中, Python和R似乎处于领先地位。
Python和R都在数据科学世界中被广泛使用。两种语言都有各种各样的工具, 它们提供了出色的功能, 非常适合数据科学场景。 Python是用于各种应用程序的通用语言, 而R是用于统计计算和图形的编程语言和环境。
Python和R生态系统概述 让我们看一下这些语言的各个方面, 以及它们的优缺点。
Python程式设计语言
充分利用Python和R的优点

文章图片
Python是一种解释性的高级通用编程语言。它是由Guido Van Rossum于1991年创建和发布的。自发布以来, Python在包括数据科学在内的各个领域都非常受欢迎。 Python是当今世界上增长最快的编程语言之一。
其广受欢迎的一些原因是:
  • 面向对象的语言
  • 一般用途
  • 拥有难以置信的社区支持
  • 简单易懂和学习
  • 拥有高效的Packages(例如pandas, numpy和scikit-learn), 使其成为机器学习活动的绝佳选择。
但是, 在统计计算方面, python落后并且没有专门的软件包, 这与其对应的R不同。
R编程语言
充分利用Python和R的优点

文章图片
R本质上是R统计计算基础所支持的用于统计计算和图形的软件。它于1993年8月首次出现, 并于1995年首次稳定发布, 此后被统计学家和数据挖掘者广泛用于统计计算。
使R在其他语言中脱颖而出的一些功能是:
  • 由几乎可以想到的任何统计应用程序的程序包组成。 CRAN当前托管超过1万个软件包。
  • 配备了出色的可视化库, 例如ggplot2。
  • 能够使用内置软件包进行独立分析。
但是有一个缺点。在性能方面, R不是最快的语言, 在处理大型数据集时有时可能是内存贪吃。
一起使用Python和R R和Python本身就是出色的工具, 但通常被认为是竞争对手。与其以这种方式看待它们, 不如尝试利用两种语言的优点, 以便我们能够兼得两者。
当今的数据科学社区中的人员通常只使用一种语言。但是, 仍然有一些人同时使用Python和R, 但是它们所占的比例很小。另一方面, 许多人只致力于一种编程语言, 但希望他们能够使用其对手的某些功能。例如, R用户有时会渴望使用Python固有的面向对象的功能, 并且类似地, 一些Python用户渴望R中可用的全部统计分布。
下图显示了Red Monk在2018年第三季度进行的一项调查的结果。这些结果基于Stack Overflow和Github上语言的流行程度, 清楚地表明R和Python的评分都很高当涉及到数据科学活动时。因此, 没有内在的理由说明为什么我们不能在同一项目中同时使用它们。我们的最终目标应该是进行更好的分析并获得更好的见解, 选择编程语言不应成为实现该目标的障碍。
充分利用Python和R的优点

文章图片
如何在单个项目中同时使用Python和R? 在将SQL嵌入到R或Python脚本中时, 我们不会蒙蔽双眼。那么, 为什么不以相同的方式利用R的统计能力以及Python的编程功能呢?是的, 可以做到, 并且有一些库可以很好地处理这些转换。
基本上有两种方法可以在单个项目中同时使用Python和R。
Python中的R
这意味着在Python脚本中调用R函数。为此目的而创建的一些库是:
1. PypeR PypeR提供了一种通过管道从Python访问R的简单方法。 PypeR也包含在Python的Package Index中, 它提供了一种更方便的安装方式。当不需要在Python和R之间进行频繁的交互式数据传输时, PypeR尤其有用。通过通过管道运行R, Python程序可以在子进程控件, 内存控制以及流行的操作系统平台(包括Windows)上移植, 从而获得灵活性。 GNU Linux和Mac OS。
充分利用Python和R的优点

文章图片
将Python对象转换为R对象的约定 2. pyRserve pyRserve是为此目的而创建的另一个库。它使用Rserve作为RPC连接网关。通过这样的连接, 可以从Python在R中设置变量, 也可以远程调用R函数。 R对象作为Python实现类的实例公开, 在许多情况下R函数作为这些对象的绑定方法。
3. rpy2 与前两个相比, rpy2库的使用频率更高。原因是正在积极积极地开发rpy2。它在Python进程中运行嵌入式R。它创建了一个框架, 该框架可以将Python对象转换为R对象, 将它们传递给R函数, 并将R输出转换回Python对象。
充分利用Python和R的优点

文章图片
在Python中使用R的优点之一是, 我们可以使用R的超赞包, 例如ggplot2, tidyr, dplyr等。在Python中轻松实现。作为示例, 让我们看看如何在Python中轻松使用ggplot2进行映射。
  • 基本图
充分利用Python和R的优点

文章图片
https://rpy2.github.io/doc/latest/html/graphics.html#plot
充分利用Python和R的优点

文章图片
  • 几何
充分利用Python和R的优点

文章图片
https://rpy2.github.io/doc/latest/html/graphics.html#geometry
充分利用Python和R的优点

文章图片
资源资源
有关rpy2的安装和工作的深入综述和详细知识, 你可能需要查看以下资源:
  • rpy2的官方文档
  • RPy2:结合R + Python的强大功能进行数据科学
  • 使用RPy2从Python访问R
R中的Python
也可以使用以下替代方法之一在R中运行Python脚本:
1.里顿 该软件包通过Jython实现了与Python的接口。它旨在使其他软件包能够将Python代码与R一起嵌入。
2. rPython rPython还是允许R调用Python的软件包。它使从R运行Python代码, 进行函数调用, 分配和检索变量等成为可能。
3. SnakeCharmR SnakeCharmR是rPython的最新版本。它是” rPython” 的一个分支, 它使用” jsonlite” , 并且相对于rPython有很多改进。
4. PythonInR PythonInR通过提供从R内部与Python交互的功能, 使从R内部访问Python非常容易。
5.网状 Reticulate软件包提供了一套全面的工具来实现Python和R之间的互操作性。在上述所有替代方法中, 该工具是使用最广泛的工具, 而更广泛的用途是因为它是Rstudio积极开发的。
Reticulate将Python会话嵌入R会话中, 从而实现无缝的高性能互操作性。该软件包使你能够将Python代码转换为R, 从而创建将这两种语言结合在一起的新型项目。
充分利用Python和R的优点

文章图片
网状软件包提供以下功能:
  • 从R调用Python的方式有多种, 包括R Markdown, 采购Python脚本, 导入Python模块以及在R会话中交互使用Python。
  • R和Python对象之间的转换(例如, 在R和Pandas数据帧之间, 或R矩阵和NumPy数组之间)。
  • 灵活绑定到不同版本的Python, 包括虚拟环境和Conda环境。
资源资源
使用网状包的一些重要资源是:
  • 该文档非常强大, 并且有许多示例和用例可以帮助你入门。
  • 包装中的SNAKES:将Python和R与网状网结合
总结
R和Python都是出色的工具, 几乎足以从头开始执行数据科学任务。一个人甚至可能不需要在一个项目中使用它们两者。但是, 两者的知识都可以派上用场, 尤其是使我们可以选择在其他环境中工作。可以这么说, 重点应该放在技能而不是工具上。因此, 如果新工具和语言可以帮助我们轻松解决当前的问题, 那么我们应该开放学习。
【充分利用Python和R的优点】如果你想开始使用任何一种语言, 请参加srcmini的Python入门或R课程。
参考文献:
  • R和Python的接口-Andrew Collier
  • 从” R vs Python” 到” R and Python” )

    推荐阅读