天天看點

手把手 | 哇!用R也可以跑Python了

R還是Python?

真是個千古難題!

如果你主要從事資料分析、統計模組化和可視化,R大概是你的不二之選。但如果你還想來搞點深度學習,整個自然語言處理,那你可還真得用Python。

如果你處于交叉領域,很可能就需要兩種語言切換。後果是,寫個for loop還出bug真的是家常便飯。報警!

面對這種困境的絕不止你一個人!最近的KDnuggets Analytics的軟體調查中,Python和R位居資料科學和機器學習軟體的前兩名。

如果你真的想提高你在資料科學領域的能力,這兩種語言你确實都應該學習。

不過現在好消息來了!

RStudio開發了一個名為reticulate的包。通過安裝包,你現在可以在R上運作Python的安裝包和函數了~

今天文摘菌就來教教你咋用這個reticulate包。

安裝并加載reticulate包 運作下面的指令來安裝這個包、并導入到您的系統中。

# 安裝reticulate包     install.packages("reticulate")     # 加載reticulate包     library(reticulate)           
檢查您的系統是否安裝過Python
py_available()           

傳回值為TRUE或FALSE。如果傳回的是TRUE,那恭喜你,您的系統已經有Python啦。FALSE的話就得先去裝一下Python了。

在R中導入一個python子產品

您可以使用函數import()來導入特定的包或子產品。

os <- import(“os”)     os$getcwd()           

上面的指令傳回工作目錄。

[1]"C:\\Users\\DELL\\Documents"

您可以使用os包中的listdir()函數來檢視工作目錄中的所有檔案。

os$listdir()           
手把手 | 哇!用R也可以跑Python了
安裝Python包

第一步:建立新的工作環境;

conda_create(“r-reticulate”)           

第二步:在conda環境下安裝“r-reticulate”和“numpy”;

conda_install(“r-reticulate”,“numpy”)           

如果“numpy”已經安裝,您不必再次安裝這個包。上面的代碼隻是給個例子而已。

第三步:加載包。

numpy <- import(“numpy”)           
使用numpy數組

首先建立一個簡單的numpy數組

y <- array(1:4, c(2, 2))     x <- numpy$array(y)     [,1] [,2]     [1,] 1 3     [2,] 2 4           

将數組進行轉置

numpy$transpose(x)     [,1] [,2]     [1,] 1 2     [2,] 3 4           

求特征根和特征向量

numpy$linalg$eig(x)           

一些數學函數

numpy$sqrt(x)     numpy$exp(x)           
互動地使用Python

您可以在R中建立互動式Python控制台。您在Python中建立的對象可在R中使用(反之亦然)。通過使用repl_python()函數,可以使Python和R互動。首先,下載下傳以下程式中使用的資料集:

repl_python()     # 加載“panda”資料集     import pandas as pd     # 載入資料集     travel = pd.read_excel(“AIR.xlsx”)     # 顯示資料集的行列數     travel.shape     # 随機選取資料集中的行數     travel.sample(n = 10)     # 按某一标志分組     travel.groupby(“Year”).AIR.mean()     # 篩選資料個案     t = travel.loc[(travel.Month >= 6) & (travel.Year >= 1955),:]     # 回到R     exit           

注意:您需要鍵入“exit”來傳回到R會話

怎樣從R中擷取在python中建立的對象

你可以在利用py object擷取python裡的對象。

summary(py$t)           

在這種情況下,我會用R的summary()函數并通路在python中建立的資料集T。此外,您可以使用ggplot2軟體包繪制折線圖。

#利用ggplot2繪制線圖     library(ggplot2)     ggplot(py$t, aes(AIR, Year)) + geom_line()           
怎樣從Python中擷取在R中建立的對象

您可以使用r object來解決這個問題。

先在R中建立一個對象:

mydata = head(cars, n=15)           

在Python REPL中調用之前在R中所建立的對象:

repl_python()     import pandas as pd     r.mydata.describe()     pd.isnull(r.mydata.speed)     exit           
使用sklearn包建構Logistic回歸模型

sklearn軟體包是python中最受歡迎的機器學習軟體包之一,它支援各種統計和機器學習的算法。

repl_python()     # 加載包     from sklearn import datasets     from sklearn.linear_model import LogisticRegression     # 加載資料庫     iris = datasets.load_iris()     # 建立logit模型     model = LogisticRegression()     model.fit(iris.data, iris.target)     # 進行預測     actual = iris.target     predicted = model.predict(iris.data)     #模型性能對比矩陣     print(metrics.classification_report(actual, predicted))     print(metrics.confusion_matrix(actual, predicted))           
其他有用的函數

檢視python的配

運作py_config()指令來檢視系統中安裝的R的版本。它還能顯示anaconda和numpy的詳細資訊。

py_config()           
手把手 | 哇!用R也可以跑Python了

檢查某個包是否安裝

可以用以下指令來檢查“pandas”是否安裝:

py_module_available(“pandas”)           

原文釋出時間為:2018-04-19

本文作者:文摘菌

本文來自雲栖社群合作夥伴“

大資料文摘

”,了解相關資訊可以關注“

”。