自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

放棄 PK,擁抱合作——R 和 Python 能做出什么新花樣?

開發(fā) 后端 前端
如果你想進入數(shù)據(jù)科學領域,你可能立即會想到R和Python。然而,我們并不是要以作為兩種選擇來考慮他們,相反地,我們更多的是去比較他們。R和Pyhton在他們各自的領域里,都是非常完美的工具。盡管如此,他們往往成為各自敵人而爭吵。

[[264791]]

我們更應該關注的是技能,而不是工具。

如果你想進入數(shù)據(jù)科學領域,你可能立即會想到R和Python。然而,我們并不是要以作為兩種選擇來考慮他們,相反地,我們更多的是去比較他們。R和Pyhton在他們各自的領域里,都是非常***的工具。盡管如此,他們往往成為各自敵人而爭吵。如果你在谷歌搜索欄里輸入“R vs Python”,你會看到非常多的關于他們霸權之爭。

放棄 PK,擁抱合作——R 和 Python 能做出什么新花樣?

產(chǎn)生這種觀點的原因之一是,人們根據(jù)所使用的編程語言的選擇將數(shù)據(jù)科學領域劃分為不同的陣營——R陣營和Python陣營,歷史證明了兩個陣營不能和諧相處。兩大陣營的成員都堅信他們對語言的選擇優(yōu)于對方。所以,在某種程度上,分歧不在于工具,而在于使用這些工具的人。

為啥不能將兩者結合?

在數(shù)據(jù)科學領域中有一些人同時使用Python和R,但是他們的比例很小。另一方面,有很多人只致力于一種編程語言,但他們希望能夠使用對手的一些功能。例如,R用戶有時渴望Python固有的面向對象能力,同樣地,一些Python用戶渴望R中可用的統(tǒng)計分布的廣泛范圍。

放棄 PK,擁抱合作——R 和 Python 能做出什么新花樣?

上圖顯示的是Red Monk在2018年第三季度的調查結果。這些結果是基于Stack Overflow和Github上流行的語言得出的,并清楚地表明R和Python的評分都很高。因此,我們沒有內在的理由不能在同一個項目上與他們一起工作。我們的最終目標應該是做更好的分析,得出更好的見解,選擇一種編程語言不應該成為實現(xiàn)這一目標的障礙。

縱觀R和python

讓我們來看看這兩種語言的各個方面和他們有哪些優(yōu)勢與弊端。

Pyhton

自發(fā)布于與1991年,pyhton變得十分流行并且它廣泛地用于數(shù)據(jù)處理。以下就是python為什么這么流行的原因:

  • 面對對象
  • 通用
  • 有大量的擴展庫和***的社區(qū)支持
  • 易于理解和學習

由于擁有大量用于科學計算和機器學習的包,例如pandas,numpy 和scikit-learn,這使得在機器學習領域中,python變成了一個***的選擇。

不幸的是,pyhton并沒有專門用于統(tǒng)計計算的包。但是,R有。

R

R在1995年發(fā)布。從那時候開始,R在數(shù)據(jù)科學領域就變成了最有用的工具之一。它具有如下優(yōu)勢:

  • R幾乎擁有所能想到的用于統(tǒng)計計算的包。CRAN目前已經(jīng)擁有超過10000個包了。
  • 配備了***的可視化庫,例如ggplot。
  • 能夠進行獨立分析

R雖然性能如此強大,但是它不是最快的語言并且在處理大數(shù)據(jù)集的時候可能會消耗大量的內存。

兩全其美

我們可以利用R的統(tǒng)計能力和Python的編程能力嗎?那么,當我們可以很容易地在R或Python腳本中嵌入SQL代碼時,為什么不將R和Python混合在一起呢?

基本上有兩種方法可以同時在一個項目中使用Python和R。

Python中的R

PypeR

PypeR提供了一種通過管道從Python訪問R的簡單方法。PypeR還包含在Python的包索引中,這為安裝提供了更方便的方法。當不需要在Python和R之間頻繁地交互數(shù)據(jù)傳輸時,PypeR特別有用。通過管道運行R, Python程序在子進程控制、內存控制和跨流行操作系統(tǒng)平臺(包括Windows、GNU Linux和Mac OS)的可移植性方面獲得了靈活性。

放棄 PK,擁抱合作——R 和 Python 能做出什么新花樣?

pyRserve

pyRserve使用Rserve作為RPC連接網(wǎng)關。通過這樣的連接,可以在Python的R中設置變量,也可以遠程調用R函數(shù)。R對象作為python實現(xiàn)的類的實例公開,在許多情況下,R函數(shù)作為這些對象的綁定方法。

rpy2

rpy2在Python進程中運行嵌入式R。它創(chuàng)建了一個框架,可以將Python對象轉換為R對象,將它們傳遞給R函數(shù),并將R輸出轉換回Python對象。rpy2使用得更多,因為它是一個正在積極開發(fā)的。

rpy2在Python進程中運行嵌入式R。它創(chuàng)建了一個框架,可以將Python對象轉換為R對象,將它們傳遞給R函數(shù),并將R輸出轉換回Python對象。由于它是一個正在積極開發(fā)的項目,所以它被使用得更頻繁。

Basic Plot

放棄 PK,擁抱合作——R 和 Python 能做出什么新花樣?
https://rpy2.github.io/doc/latest/html/graphics.html#plot 

放棄 PK,擁抱合作——R 和 Python 能做出什么新花樣?

Geometry

放棄 PK,擁抱合作——R 和 Python 能做出什么新花樣?
https://rpy2.github.io/doc/latest/html/graphics.html#geometry

放棄 PK,擁抱合作——R 和 Python 能做出什么新花樣?

資源

想要更深入地了解rpy2,請參閱以下資源:

  • rpy2’s Official Documentation
  • RPy2: Combining the Power of R + Python for Data Science
  • Accessing R from Python using RPy2

R調用Python

我們可以選擇以下的一種方法在Python中運行R腳本:

rJython

這個工具包使用Jython實現(xiàn)到Python的接口。它的目的是使其他包能夠在R中嵌入Python代碼。

rPython

rPython也是一種工具包,使得R語言可以調用Python。使用rPython,通過R語言可以運行Python代碼,調用函數(shù),分配和檢索變量等。雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)(公眾號:雷鋒網(wǎng))

SnakeCharmR

SnakeCharmR是改良版的 rPython。它源于 rPython 的 'jsonlite' 分支,相比于 rPython 有諸多提升。

PythonInR

PythonInR提供了R與Python交互的函數(shù),簡化了通過R訪問Python的過程。

reticulate

reticulate包為Python和R之間的協(xié)同操作提供了全套工具。 在以上提供的所有方法中,reticulate被最廣泛使用,更重要的是,它使用Rstudio開發(fā)的。Reticulate將Python會話嵌入到R會話中,支持無縫、高性能的交互性能。 該包使您能夠將Python代碼編織到R中,從而創(chuàng)建一種將兩種語言融合在一起的新項目。

reticulate 包提供下列工具:

  • 支持從R中以多種方式調用Python,包括R標記、加載Python腳本、導入Python模塊,以及在R會話中交互式地使用Python。
  • 實現(xiàn)R和Python對象之間的轉換 (例如:R和Pandas數(shù)據(jù)幀之間,或者R矩陣和NumPy數(shù)組之間的轉換)。
  • 靈活地綁定到不同版本的Python,包括虛擬環(huán)境和Conda環(huán)境。

資源

使用網(wǎng)狀包的一些很好的資源是:

  • 文檔非常健壯,有很多示例和用例可以幫助您入門(請點擊原文查看文檔)。
  • https://longhowlam.wordpress.com/2017/04/10/test-driving-python-integration-in-r-using-the-reticulate-package/
  • SNAKES IN A PACKAGE: COMBINING PYTHON AND R WITH RETICULATE

結論

R和Python都是非常健壯的語言,它們中的任何一種實際上都足以執(zhí)行數(shù)據(jù)分析任務。然而,這兩者肯定都有一些高和低的點,如果我們能利用兩者的優(yōu)勢,我們可以做得更好。無論哪種方式,掌握這兩方面的知識都將使我們更加靈活,從而增加我們能夠在多種環(huán)境中工作的機會。

責任編輯:未麗燕 來源: AI 研習社編譯
相關推薦

2012-11-20 16:23:19

飛輪UPS數(shù)據(jù)中心電源

2022-05-09 08:01:23

countdistinctMySQL

2013-10-22 09:37:14

網(wǎng)絡配置管理網(wǎng)絡性能監(jiān)控

2013-01-22 11:22:02

聯(lián)想Yoga

2009-05-13 20:12:15

殺毒設計師H1N1

2022-05-30 08:01:25

Windows 11操作系統(tǒng)桌面貼紙

2017-05-22 15:50:38

ICT華為生態(tài)之行

2010-09-01 13:47:42

釣魚網(wǎng)站

2017-02-27 21:37:49

2024-06-11 09:52:39

2020-11-19 15:18:19

無人機技術工業(yè)

2021-05-13 07:32:50

項目日志系統(tǒng)

2020-09-03 14:45:09

C語言開源項目

2022-06-15 12:35:24

數(shù)據(jù)泄露勒索軟件網(wǎng)絡攻擊

2017-02-27 15:21:39

2025-03-04 07:53:40

2021-01-04 11:14:09

品牌營銷UGC
點贊
收藏

51CTO技術棧公眾號