99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

R和Python到底誰(shuí)更好如何將Python與R同時(shí)應(yīng)用在同一個(gè)項(xiàng)目

電子工程師 ? 來源:未知 ? 2019-03-17 10:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

如果你從事在數(shù)據(jù)科學(xué)領(lǐng)域,提到編程語(yǔ)言,一定能馬上想到 R 語(yǔ)言和 Python語(yǔ)言(以下分別簡(jiǎn)稱 R、Python)?,F(xiàn)在更多時(shí)候大家都把它們兩個(gè)放在一起對(duì)比,進(jìn)行“二選一”,而不是把兩個(gè)都為自己所用。其實(shí),無論是 R 還是 Python,兩個(gè)都是很優(yōu)秀的工具。

如果你在 Google 中搜索“R vs Python”,可以看到很多關(guān)于二者誰(shuí)更好的討論。

出現(xiàn)這種現(xiàn)象的原因之一是,使用者們基于自己所使用的編程語(yǔ)言,將數(shù)據(jù)科學(xué)領(lǐng)域分為幾個(gè)陣營(yíng),包括 R 陣營(yíng)和 Python 陣營(yíng)。兩個(gè)陣營(yíng)的人都十分相信自己選擇的語(yǔ)言遠(yuǎn)好于對(duì)方的。所以在某種程度上,這種分歧并不全部來自于工具本身,也有來自使用者的原因。

為什么不同時(shí)使用兩種語(yǔ)言?

其實(shí),在數(shù)據(jù)科學(xué)的圈子里,也存在同時(shí)使用 Python 和 R 的人,但比例是非常小。另外,有一大部分堅(jiān)持使用某一種語(yǔ)言的人,同時(shí)也希望能掌握另一種語(yǔ)言的某些功能。比如,R 的使用者有時(shí)候很需要 Python 的面向?qū)ο髮傩?,與此同時(shí),一些 Python 用戶也想使用 R 強(qiáng)大的統(tǒng)計(jì)分布功能。

上圖顯示了由 Red Monk 在 2018 年第三季度所進(jìn)行的調(diào)查的結(jié)果。此結(jié)果基于 Stack Overflow 和 Github 上語(yǔ)言的受歡迎程度,很明顯 R 和 Python 的得分都很高。從語(yǔ)言本身來說,并不是限制我們不能在同一項(xiàng)目中使用兩者的原因。而我們的最終目標(biāo)要做更有洞察、有價(jià)值的分析,而選擇哪種語(yǔ)言不應(yīng)該成為這一過程中的阻礙。

縱觀 R 和 Python

下面我們可以先從幾個(gè)不同方面對(duì)比這兩種語(yǔ)言,分別看看它們的優(yōu)缺點(diǎn)。

Python

自 1991 年發(fā)布以來,Python 就極其受歡迎,尤其在數(shù)據(jù)處理方面被廣泛應(yīng)用。它如此受歡迎有以下幾個(gè)原因:

面向?qū)ο笳Z(yǔ)言

通用性

可擴(kuò)展性強(qiáng),強(qiáng)大的社區(qū)支持

易于理解和學(xué)習(xí)

Pandas、Numpy 和 Scikit-learn 等包使 Python 成為機(jī)器學(xué)習(xí)的極佳選擇

然而,與 R 不同的是,Python 沒有用于統(tǒng)計(jì)計(jì)算的專用包。

R

R 首次發(fā)布于 1995 年,隨即成為數(shù)據(jù)科學(xué)領(lǐng)域應(yīng)用最廣的工具之一。

幾乎包含你能想到的任何一種統(tǒng)計(jì)應(yīng)用工具包。當(dāng)前 CRAN 有超過 10 萬(wàn)個(gè)包。

具備極好的可視化工具包,如 ggplot2。

能夠進(jìn)行獨(dú)立分析。

從性能上來說,R 并不是速度最快的語(yǔ)言,而且在處理大型數(shù)據(jù)集時(shí),可能對(duì)內(nèi)存消耗較大。

“雙劍合璧”

是否可以同時(shí)運(yùn)用 R 超凡的統(tǒng)計(jì)能力和 Python 的編程能力呢?我們可以輕松地將 SQL 代碼與 R 或 Python 相結(jié)合寫成一個(gè)腳本,為什么不把 R 和 Python 也結(jié)合一起使用呢?

將 Python 與 R 同時(shí)應(yīng)用在同一個(gè)項(xiàng)目中,有兩個(gè)基本的手段,接下來就和大家分享這兩個(gè)方法:

R within Python

PypeR

PypeR 提供了一種可以讓 R 連接 Python 的簡(jiǎn)單途徑,即通過管道 (pipe)。PypeR 也存在于 Python 的工具包之中,提供了更便捷的安裝方式。當(dāng) Python 和 R 之間不需要頻繁進(jìn)行數(shù)據(jù)傳輸時(shí),PypeR 非常適用。當(dāng)我們通過管道運(yùn)行 R 時(shí),Python 程序在子流程控制、內(nèi)存控制和跨操作系統(tǒng)(包括 Windows、GNU Linux 和 Mac OS)移植的靈活度都比較高。

pyRserve

pyRserve 使用Rserve作為 RPC 的連接網(wǎng)關(guān),通過這種連接方式,用戶可以在 Python 中設(shè)置 R 的變量,同時(shí) R 的函數(shù)也可以被遠(yuǎn)程調(diào)用。

rpy2

ryp2 可以在 Python 進(jìn)程中運(yùn)行內(nèi)嵌的 R 語(yǔ)言。它創(chuàng)建了一種框架,可以將 Python 對(duì)象轉(zhuǎn)化為 R 對(duì)象,再把它們傳入 R 函數(shù),最后將 R 輸出的結(jié)果傳回給 Python 對(duì)象。

在 Python 中調(diào)用 R 語(yǔ)言的優(yōu)點(diǎn)之一是,我們可以在 Python 中方便地使用 R 語(yǔ)言強(qiáng)大的工具包,如 ggplot2、tidyr、dplyr 等。下面我們通過一個(gè)簡(jiǎn)單的例子來看看如何在 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

關(guān)于 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

我們可以通過如下幾個(gè)工具在 Python 中運(yùn)行 R 語(yǔ)言的腳本:

rJython

該工具包通過 Jython 部署了連接 Python 的界面,提供了將 Python 與 R 連通的接口。

rPython

rPython 也是一個(gè)在 R 語(yǔ)言中調(diào)用 Python 的工具包,它可以在 R 中運(yùn)行 Python 代碼,進(jìn)行函數(shù)的調(diào)用,以及變量的分配和獲取等。

SnakeCharmR

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

PythonInR

PythonInR 可以讓用戶非常方便地在 R 語(yǔ)言中使用 Python,提供了可與 Python 進(jìn)行交互的函數(shù)。

reticulate

Reticulate 包提供了一整套可使 Python 與 R 互相操作的工具。在所有上面所提到的工具中,這個(gè)使用最為廣泛,大部分原因在于它是由 Rstudio 主導(dǎo)開發(fā)的。Reticulate 在 R 模塊中內(nèi)嵌了 Python 模塊,使兩種語(yǔ)言可以無縫且高性能地相互操作。使用該工具包,我們可以把 Python 代碼 “編織” 進(jìn) R 語(yǔ)言中,創(chuàng)造了一種將兩種語(yǔ)言相結(jié)合的新型項(xiàng)目。

Reticulate 包提供了以下功能:

提供多種在 R 語(yǔ)言中調(diào)用 Python 的方式,包括 R Markdown、導(dǎo)入 Python 腳本、引入 Python 模塊,以及在 R 模塊中使用 Python。

提供 R 對(duì)象和 Python 對(duì)象間的相互轉(zhuǎn)換(例如,R 與 Pandas 數(shù)據(jù)框的轉(zhuǎn)換,或 R 矩陣與 NumPy 數(shù)組的轉(zhuǎn)換)。

可與不同版本的 Python 進(jìn)行靈活的合作,包括虛擬環(huán)境和 Conda 環(huán)境。

關(guān)于 reticulate 工具包的資源:

該文檔提供了許多實(shí)例來助你入門:

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

使用 reticulate 包,在 R 語(yǔ)言中使用 Python:

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

工具包中的 “蛇”:用 reticulate 將 Python 與 R 聯(lián)結(jié):

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

結(jié)論

R 和 Python 都是完整且穩(wěn)定的語(yǔ)言,都足以完成一項(xiàng)數(shù)據(jù)分析任務(wù)。雖然二者均存在一些各自的優(yōu)劣勢(shì),如果能利用好它們的優(yōu)點(diǎn),我們就能更好地完成任務(wù)??傊?,同時(shí)掌握兩種語(yǔ)言會(huì)使我們更加靈活,從而在多種環(huán)境下自如地工作。

原文鏈接:

https://towardsdatascience.com/from-r-vs-python-to-r-and-python-aa25db33ce17?gi=da69b4bfd654

(本文為AI科技大本營(yíng)轉(zhuǎn)載文章,轉(zhuǎn)載請(qǐng)微信聯(lián)系 1092722531)

精彩推薦

4月13-14日,CSDN將在北京主辦“Python開發(fā)者日(2019)”,匯聚十余位來自阿里巴巴、IBM、英偉達(dá)等國(guó)內(nèi)外一線科技公司的Python技術(shù)專家,還有數(shù)百位來自各行業(yè)領(lǐng)域的Python開發(fā)者,共同探討Python在不同場(chǎng)景下的的應(yīng)用優(yōu)勢(shì)和實(shí)戰(zhàn)經(jīng)驗(yàn)。即刻掃碼搶購(gòu)早鳥票,限量發(fā)售!

推薦薦閱讀:

Google又逆天:語(yǔ)音輸入離線實(shí)時(shí)輸出文字,僅占80MB!然而……

西工大開源擁擠人群數(shù)據(jù)集生成工具,大幅提升算法精度 | CVPR 2019

R和Python誰(shuí)更好?這此讓你「魚與熊掌」兼得

10行Python,搭建一個(gè)游戲AI | 視頻教程

Node.jsJavaScript 基金會(huì)正式合并,JS 喜提新主場(chǎng)

云計(jì)算時(shí)代運(yùn)維的出路在哪?

30歲的萬(wàn)維網(wǎng)活不長(zhǎng)了! 蒂姆·伯納斯·李要借去中心化親手殺死它, 你再也不用擔(dān)心...

互聯(lián)網(wǎng)***親歷者:那些陣痛、掙扎與去向

沒有一個(gè)人,能躲過程序員的誘惑!

?點(diǎn)擊“閱讀原文”,查看歷史精彩文章。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    783

    瀏覽量

    45181
  • 數(shù)據(jù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    627

    瀏覽量

    29205
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86824

原文標(biāo)題:R和Python誰(shuí)更好?這次讓你「魚與熊掌」兼得

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于Python腳本的R語(yǔ)言的函數(shù)

    本文介紹了采用創(chuàng)建個(gè)Python腳本,用該腳本模仿R風(fēng)格的函數(shù)的方法來方便地進(jìn)行統(tǒng)計(jì)。 是用R語(yǔ)言還是用
    的頭像 發(fā)表于 10-12 09:33 ?2352次閱讀
    基于<b class='flag-5'>Python</b>腳本的<b class='flag-5'>R</b>語(yǔ)言的函數(shù)

    【W(wǎng)RTnode2R試用體驗(yàn)】安裝python

    繼《初識(shí)WRTnode2R》之后,應(yīng)項(xiàng)目需求,安裝python。python的安裝分為3步。第步,在make menuconfig時(shí)選中核
    發(fā)表于 11-09 20:22

    Python編程語(yǔ)言可以應(yīng)用在哪些方面?

    萬(wàn)行以上的項(xiàng)目,而且能夠很好的把網(wǎng)游項(xiàng)目的規(guī)模控制在10萬(wàn)行代碼以內(nèi)。10. 桌面軟件Python在圖形界面開發(fā)上很強(qiáng)大,可以用tkinter/PyQT框架開發(fā)各種桌面軟件!以上是Python
    發(fā)表于 02-05 17:50

    Python中is與==判斷的區(qū)別

    Python代碼。首先,我們創(chuàng)建個(gè)新的列表對(duì)象并將其命名為a,然后定義另一個(gè)變量b指向同一
    發(fā)表于 06-20 17:11

    如何將個(gè)信號(hào)映射到同一個(gè)引腳?

    。對(duì)于第二個(gè)核心,我輸入/輸出連接到外部端口。在ucf文件中,我第二個(gè)核心的網(wǎng)絡(luò)添加到與第一個(gè)核心網(wǎng)絡(luò)相同的引腳位置。這是我的問題。我不
    發(fā)表于 04-06 07:22

    我沒學(xué)過編程,能否學(xué)會(huì)Python

    差異極大,最后都得“翻譯”成CPU可以執(zhí)行的機(jī)器指令。而不同的編程語(yǔ)言,干同一個(gè)活,編寫的代碼量,差距也很大。比如,完成同一個(gè)任務(wù),C語(yǔ)言要寫1000行代碼,Java只需要寫100行,而Python可能
    發(fā)表于 07-14 14:49

    我沒學(xué)過編程,能否學(xué)會(huì)Python

    差異極大,最后都得“翻譯”成CPU可以執(zhí)行的機(jī)器指令。而不同的編程語(yǔ)言,干同一個(gè)活,編寫的代碼量,差距也很大。比如,完成同一個(gè)任務(wù),C語(yǔ)言要寫1000行代碼,Java只需要寫100行,而Python可能
    發(fā)表于 07-25 10:21

    r語(yǔ)言中有哪些取整運(yùn)算_pythonr語(yǔ)言的區(qū)別對(duì)比_pythonr語(yǔ)言哪個(gè)好

    分析比較這兩種語(yǔ)言到底哪個(gè)好,得看你的用途。R主要在學(xué)術(shù)界流行,python在工程方便比較實(shí)用。我的觀點(diǎn)如下
    發(fā)表于 01-05 15:32 ?3521次閱讀

    精選10個(gè)Python開源項(xiàng)目

    過去一個(gè)月里,我們對(duì)近 250 個(gè) Python 開源項(xiàng)目進(jìn)行了排名,并挑選出熱度前 10 的項(xiàng)目。
    的頭像 發(fā)表于 11-12 09:47 ?6623次閱讀

    為什么在數(shù)據(jù)科學(xué)領(lǐng)域PythonR更好

    經(jīng)常有讀者問我們,在數(shù)據(jù)科學(xué)領(lǐng)域里,到底是該選 Python 呢,還是選 R 更好?誠(chéng)然,對(duì)于數(shù)據(jù)科學(xué)家來說,R
    的頭像 發(fā)表于 04-18 10:49 ?3695次閱讀

    PythonR語(yǔ)言到底有什么區(qū)別和聯(lián)系

     有人說PythonR的區(qū)別是顯而易見的,因?yàn)?b class='flag-5'>R是針對(duì)統(tǒng)計(jì)的,python是給程序員設(shè)計(jì)的,其實(shí)這話對(duì)Python多多少少有些丌公平。20
    發(fā)表于 08-24 16:47 ?4次下載
    <b class='flag-5'>Python</b>和<b class='flag-5'>R</b>語(yǔ)言<b class='flag-5'>到底</b>有什么區(qū)別和聯(lián)系

    多元統(tǒng)計(jì)分析:RPython的實(shí)現(xiàn)

    多元統(tǒng)計(jì)分析:RPython的實(shí)現(xiàn)說明。
    發(fā)表于 05-27 11:27 ?14次下載

    Python如何將Python腳本打包成exe可執(zhí)行文件

    Python實(shí)用技巧】如何將Python腳本打包成exe可執(zhí)行文件?
    的頭像 發(fā)表于 08-18 12:40 ?1.9w次閱讀
    【<b class='flag-5'>Python</b>】<b class='flag-5'>如何將</b><b class='flag-5'>Python</b>腳本打包成exe可執(zhí)行文件

    如何將arduino串口鏈接到python

    電子發(fā)燒友網(wǎng)站提供《如何將arduino串口鏈接到python.zip》資料免費(fèi)下載
    發(fā)表于 02-01 09:27 ?0次下載
    <b class='flag-5'>如何將</b>arduino串口鏈接到<b class='flag-5'>python</b>

    如何將python文件導(dǎo)入到ROS系統(tǒng)中

    本文通過使用myCobot機(jī)械臂進(jìn)行QR碼視覺追蹤的實(shí)踐案例分析,介紹如何將 python 文件導(dǎo)入到 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?817次閱讀
    <b class='flag-5'>如何將</b><b class='flag-5'>python</b>文件導(dǎo)入到ROS系統(tǒng)中