如何從 R 調(diào)用或運(yùn)行 python_第1頁
如何從 R 調(diào)用或運(yùn)行 python_第2頁
如何從 R 調(diào)用或運(yùn)行 python_第3頁
如何從 R 調(diào)用或運(yùn)行 python_第4頁
如何從 R 調(diào)用或運(yùn)行 python_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

?本文介紹了如何從R調(diào)用或運(yùn)行python。這兩種工具都有自己的優(yōu)點(diǎn)和缺點(diǎn)。使用這兩個(gè)工具中最好的包和功能并將其組合起來總是一個(gè)好主意。在數(shù)據(jù)科學(xué)領(lǐng)域,這些工具在使用方面擁有良好的市場份額。R主要以數(shù)據(jù)分析、統(tǒng)計(jì)建模和可視化而聞名。而Python在深度學(xué)習(xí)和自然語言處理方面很受歡迎。

在最近的KDnuggetsAnalytics軟件調(diào)查民意調(diào)查中,Python和R被評(píng)為數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域的前2位工具。如果你真的想提升你在數(shù)據(jù)科學(xué)領(lǐng)域的職業(yè)生涯,這些就是你需要關(guān)注的語言。

RStudio開發(fā)了一個(gè)名為reticulate

的包,它提供了運(yùn)行R中的Python包和函數(shù)的媒介。

安裝和加載Reticulate包運(yùn)行以下命令以安裝此軟件包并將其導(dǎo)入到您的系統(tǒng)中。#安裝網(wǎng)狀包

install.packages("reticulate")

#加載網(wǎng)狀包

庫(reticulate)#Installreticulatepackage

install.packages("reticulate")

#Loadreticulatepackage

library(reticulate)檢查您的系統(tǒng)上是否可以使用Pythonpy_available()它返回TRUE/FALSE。如果為TRUE,則表示您的系統(tǒng)上已安裝python。

在R中導(dǎo)入python模塊

您可以使用函數(shù)import()導(dǎo)入特定的包或模塊。os<-import("os")

os$getcwd()上面的程序返回工作目錄。[1]“C:\\Users\\DELL\\Documents”

您可以使用os

包中的listdir()函數(shù)來查看工作目錄中的所有文件

os$listdir()[1]".conda"".gitignore"".httr-oauth"[4]".matplotlib"".RData"".RDataTmp"[7]".Rhistory""1.pdf""12.pdf"[10]"122.pdf""124.pdf""13.pdf"[13]"1403.2805.pdf""2.pdf""3.pdf"[16]"AIR.xlsx""app.r""Apps"[19]"articles.csv""Attrition_Telecom.xlsx""AUC.R"

安裝Python包

第1步:創(chuàng)建新環(huán)境最簡單的方法是指定python安裝程序的文件位置,其中python可執(zhí)行文件存在。如果您使用AnacondaPython,您可以找到Anaconda3文件夾,并且python.exe必須位于該文件夾下。圖書館(網(wǎng)狀)use_python('C:\\Users\\DELL\\Anaconda3\\python.exe',required=T)py_可用(真)library(reticulate)use_python('C:\\Users\\DELL\\Anaconda3\\python.exe',required=T)py_available(TRUE)如果您使用Python(不使用Anaconda),您可以像這樣指定路徑:use_python(Sys.which('python3'),required=T)現(xiàn)在你可以使用命令安裝你想要的python包了shell()。shell("pipinstallnumpy")另一種創(chuàng)建環(huán)境的方法是conda_create()conda_create("r-reticulate")在conda環(huán)境中安裝包c(diǎn)onda_install(“r-reticulate”,“numpy”)由于numpy已經(jīng)安裝,所以不需要再次安裝。上面的例子只是為了演示。

第2步:加載包numpy<-import("numpy")使用numpy數(shù)組

讓我們創(chuàng)建一個(gè)示例numpy數(shù)組y<-array(1:4,c(2,2))

x<-

numpy$array(y)[,1][,2][1,]13[2,]24

轉(zhuǎn)置上面的數(shù)組numpy$transpose(x)[,1][,2][1,]12[2,]34

特征值和特征向量numpy$linalg$eig(x)[[1]][1]-0.37228135.3722813[[2]][,1][,2][1,]-0.9093767-0.5657675[2,]0.4159736-0.8245648

數(shù)學(xué)函數(shù)numpy$sqrt(x)

numpy$exp(x)

RMarkdown中的Python引擎您還可以使用RMarkdown,它允許使用reticulate包運(yùn)行Python代碼。在運(yùn)行Pythonchunk之前,您需要加載reticulate庫并設(shè)置python(如下所示)。```{r設(shè)置,include=FALSE}圖書館(網(wǎng)狀)use_python('C:\\Users\\DELL\\Anaconda3\\python.exe',required=T)py_可用(真)```````{rsetup,include=FALSE}library(reticulate)use_python('C:\\Users\\DELL\\Anaconda3\\python.exe',required=T)py_available(TRUE)```Python代碼塊通過```{python}

啟用。```{python}importpandaspandasdf=pd.read_csv("C:/Users/DELL/deals.csv")pandasdf.head()```?編輯如何直接執(zhí)行Python代碼您可以將python代碼按原樣放入函數(shù)中py_run_string()。您可以訪問使用創(chuàng)建的對(duì)象py$objectname。例如,下面的代碼創(chuàng)建pandas數(shù)據(jù)框。您可以使用py$pandasdf訪問它py_run_string("將pandas導(dǎo)入為pd;pandasdf=pd.read_csv('C:/Users/DELL/deals.csv');")py_run_string("importpandasaspd;pandasdf=pd.read_csv('C:/Users/DELL/deals.csv');")您還可以使用函數(shù)直接運(yùn)行python文件py_run_file()py_run_file(“樣本文件.py”)py_run_file("samplefile.py")交互地使用Python您可以在R會(huì)話中創(chuàng)建交互式Python控制臺(tái)。您在Python中創(chuàng)建的對(duì)象可用于您的R會(huì)話(反之亦然)。通過使用repl_python()函數(shù),您可以使其具有交互性。下載下面程序中使用的\o"數(shù)據(jù)集。"數(shù)據(jù)集。repl_python()#加載Pandas包將pandas導(dǎo)入為pd#導(dǎo)入數(shù)據(jù)集旅行=pd.read_excel("AIR.xlsx")

#行數(shù)和列數(shù)

Travel.shape

#選擇隨機(jī)數(shù)。行數(shù)

Travel.sample(n=10)

#分組

Travel.groupby("Year").AIR.mean()

#過濾

t=Travel.loc[(travel.Month>=6)&(travel.Year>=1955),:]

#返回R

退出repl_python()#LoadPandaspackageimportpandasaspd#ImportingDatasettravel=pd.read_excel("AIR.xlsx")

#Numberofrowsandcolumns

travel.shape

#Selectrandomno.ofrows

travel.sample(n=10)

#GroupBy

travel.groupby("Year").AIR.mean()

#Filter

t=travel.loc[(travel.Month>=6)&(travel.Year>=1955),:]

#ReturntoR

exit注意:需要輸入exit

才能返回R環(huán)境。?編輯從R運(yùn)行Python

如何從R訪問在python中創(chuàng)建的對(duì)象

您可以使用py

對(duì)象

來訪問在python中創(chuàng)建的對(duì)象。摘要(py$t)summary(py$t)在本例中,我使用R的summary()函數(shù)并訪問在python中創(chuàng)建的數(shù)據(jù)幀t。同樣,您可以使用ggplot2包創(chuàng)建線圖。#使用ggplot2庫的折線圖

(ggplot2)

ggplot(py$t,aes(AIR,Year))+geom_line()#Linechartusingggplot2

library(ggplot2)

ggplot(py$t,aes(AIR,Year))+geom_line()如何從Python訪問在R中創(chuàng)建的對(duì)象您可以使用r對(duì)象來完成此任務(wù)。

1.讓我們?cè)赗中創(chuàng)建一個(gè)對(duì)象mydata=head(汽車,n=15)mydata=head(cars,n=15)2.在PythonREPL中使用R創(chuàng)建的對(duì)象repl_python()

將pandas導(dǎo)入為pd

r。mydata.describe()

pd.isnull(

r.mydata.speed

)

退出repl_python()

importpandasaspd

r.mydata.describe()

pd.isnull(r.mydata.speed)

exit使用sklearn包構(gòu)建邏輯回歸模型sklearn包是Python中最流行的機(jī)器學(xué)習(xí)包之一。它支持各種統(tǒng)計(jì)和機(jī)器學(xué)習(xí)算法。repl_python()#加載庫從sklearn導(dǎo)入數(shù)據(jù)集從sklearn.linear_model導(dǎo)入LogisticRegression#加載鳶尾花數(shù)據(jù)集iris=datasets.load_iris()#開發(fā)logit模型模型=邏輯回歸()model.fit(iris.data,iris.target)#評(píng)分實(shí)際=iris.target預(yù)測=model.predict(iris.data)#性能指標(biāo)打?。╩etrics.classification_report(實(shí)際,預(yù)測))打印(metrics.confusion_matrix(實(shí)際,預(yù)測))repl_python()#Loadlibrariesfromsklearnimportdatasetsfromsklearn.linear_modelimportLogisticRegression#loadtheirisdatasetsiris=datasets.load_iris()#Developinglogitmodelmodel=LogisticRegression()model.fit(iris.data,iris.target)#Scoringactual=iris.targetpredicted=model.predict(iris.data)#PerformanceMetricsprint(metrics.classification_report(actual,predicted))print(metrics.confusion_matrix(actual,predicted))

其他有用的功能

查看python的配置

運(yùn)行py_config()命令

來查找系統(tǒng)上安裝的python版本。它還顯示有關(guān)anaconda和numpy的詳細(xì)信息。py_config()python:C:\Users\DELL\ANACON~1\python.exelibpython:C:/Users/DELL/ANACON~1/python36

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論