大數據文摘作品
編譯:大茜、錢天培
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()
安裝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),:]# 回到Rexit
注意:您需要鍵入「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 pdr.mydata.describe()pd.isnull(r.mydata.speed)exit
使用sklearn包構建Logistic回歸模型
sklearn軟體包是python中最受歡迎的機器學習軟體包之一,它支持各種統計和機器學習的算法。
repl_python()# 加載包from sklearn import datasetsfrom sklearn.linear_model import LogisticRegression# 加載資料庫iris = datasets.load_iris()# 建立logit模型model = LogisticRegression()model.fit(iris.data, iris.target)# 進行預測actual = iris.targetpredicted = model.predict(iris.data)#模型性能對比矩陣print(metrics.classification_report(actual, predicted))print(metrics.confusion_matrix(actual, predicted))
其他有用的函數
查看python的配置
運行py_config()命令來查看系統中安裝的R的版本。它還能顯示anaconda和numpy的詳細信息。
py_config()
檢查某個包是否安裝
可以用以下命令來檢查「pandas」是否安裝:
py_module_available(「pandas」)
原文連結:
https://www.r-bloggers.com/run-python-from-r/