【工程師福音】在 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()

安裝 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()

檢查某個包是否安裝

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

py_module_available(“pandas”)

原文鏈接

程式語言,你用的上的工具包

28 種 Coding 語言簡史:有人真的很不喜歡括號,於是發明了 Python

【附完整程式碼教學】教你一步一步用 Python 打造數據實驗室,輕鬆預測比特幣價格趨勢

【最好學、最流行】從大數據到網頁通通包辦的工具人,好 Python 不學嗎?

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈手把手 | 哇!用 R 也可以跑 Python 了 〉。)


傳統機房的計算能力和儲存空間
跟不上數位業務即戰力與創新能力

新時代的 IT 機房如何無痛升級
才不會落後於人,成為公司的競爭力罩門?

點關鍵字看更多相關文章: