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

2020-12-05 大數據文摘

大數據文摘作品

編譯:大茜、錢天培

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/

相關焦點

  • 從0開始學python-6.2 用python讀寫文件
    我們還學習了用python來查找、重命名一個文件。這節課,我們一起學習一下怎麼用python操作一個文件的內容。文件操作對一個文件,我們可以1)讀取裡面的內容、2)往文件裡寫內容、3)追加文件內容。我們來看看用python怎麼做這些事情。打開文件在對文件內容操作之前,我們首先要打開文件。
  • 放棄PK,擁抱合作——R和 Python 能做出什麼新花樣?
    from-r-vs-python-to-r-and-python-aa25db33ce17我們更應該關注的是技能,而不是工具。從那時候開始,R在數據科學領域就變成了最有用的工具之一。它具有如下優勢R雖然性能如此強大,但是它不是最快的語言並且在處理大數據集的時候可能會消耗大量的內存。我們可以利用R的統計能力和Python的編程能力嗎?那麼,當我們可以很容易地在R或Python腳本中嵌入SQL代碼時,為什麼不將R和Python混合在一起呢?
  • 代碼跑得慢甩鍋Python?手把手教你如何給代碼提速30%
    Medium上一位小哥就詳細講了講如何讓python提速30%,以此證明代碼跑得慢不是python的問題,而是代碼本身的問題。時序分析在開始進行任何優化之前,我們首先需要找出代碼的哪些部分使整個程序變慢。
  • 如何用python在工作中「偷懶」?
    這個時候,你已經可以寫個循環,不停地點擊屏幕上不同的幾個點,最基礎的掛機腳本就實現了。Excel自動化處理Excel合併在實際應用中可能會有不同月份的數據或者不同周的報告等等的Excel數據,都是單個獨立的文件,如果想要整體使用的話就需要合併一下,那麼如何利用python把指定目錄下的所有Excel數據合併成一個文件呢?
  • 初識python
    2,python歷史。宏觀上:python2 與 python3 區別:python2 源碼不標準,混亂,重複代碼太多,python3 統一 標準,去除重複代碼。3,python的環境。編譯型:一次性將所有程序編譯成二進位文件。缺點:開發效率低,不能跨平臺。優點:運行速度快。
  • 用Python實現職工信息管理系統
    增加職工數據```python# 接收用戶收入id = input('請輸入職工號')name = input('請輸入姓名')sex = input('請輸入性別')age = input('請輸入年齡')education = input('請輸入學歷')address = input
  • 用Python實現簡易超市售貨系統
    今天來實現一個簡單的超市售貨系統數據存儲形式為json的數據首先是讀取數據,這裡用到的Python的json庫,用於處理json類型的數據```pythondef load(): # 數據讀取j = open('goods.txt', 'r', encoding='utf-8')# 逐行讀取文件中的數據
  • 科悟學院介紹什麼是Python、python能做什麼?
    近幾年我們很多人,尤其是網際網路人可以發現,Python這個詞,經常出現在我們的眼中,它其實也是一種解釋型腳本語言。Python能幹什麼?常見的,我們用Python來進行web開發、計算和數據統計、數據分析與整理、人工智慧、軟體開發、網絡爬蟲等領域。凡是需要重複勞動的工作我們都可以使用Python來輔助我們完成工作。
  • 如何用Python快速優雅的批量修改Word文檔樣式?
    代碼實現首先導入需要的庫並設置目標文件夾路徑from docx import Documentfrom docx.shared import RGBColor, Pt, Cmimport osimport glob# 此處更換創建文件夾的路徑mkdir_path = r'C
  • 「python opencv視覺零基礎」十、圖片效果毛玻璃
    一、學習目標了解高斯模糊的使用方法了解毛玻璃的圖片效果添加了解如何自己做一個噪聲圖片目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python opencv視覺入門到實戰
  • 學習Python正則表達式
    如何不需要一個接一個地複製和粘貼,就可以輕鬆地找到這些電話號碼?Python中的正則表達式(re)就可以解決這個問題!正則表達式正則表達式是一個具有特殊字符的序列。它有助於檢查字符串中的每個字符,看它是否與某個模式匹配:哪些字符在什麼位置出現了多少次。
  • 解決Python讀取文件時出現UnicodeDecodeError
    今天學習python時,讀取一個txt文檔,然後打開後輸出文件,提示UnicodeDecodeError: 'gbk' codec can't decode bytepython代碼def print_file(fname): f = open(fname,'r'
  • python使用with as處理文件的讀寫
    在python中使用with語句,可以自動調用close()方法,同時也解決了異常問題。with open('test.txt','w') as f:f.write('Hello, python!')python文件讀寫模式:r:以只讀方式打開文件,指針放到文件的開頭。
  • Python基礎教程(一) - 快速入門
    /usr/bin/python為Linux系統下Python解釋器的路徑,通常python解釋器的路徑安裝在/usr/local/bin或/usr/bin目錄下。列表和元組可以將列表和元組當成普通的「數組」,可以保存任意數量任意類型的Python對象。通過從0開始的數字索引訪問元素。列表和元組有幾處重要的區別。列表元素用中括號([])包裹,元素的個數及元素值可以改變。元組用小括號(())包裹,不可以更改。
  • 「python opencv視覺零基礎」十四、直方圖反向投影
    前文提醒:博主正在參加博客之星評比,成功入選Top200,現在暫居第九歡迎各位點擊了解更多幫我投票,非常感謝~目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python
  • Python教程|用代碼打開聖誕節的奇妙姿勢!
    h = 10for i in range(h): print((" " * (h - i)) + ('*' * (2 * i + 1)))print((' ' * h) + '|')調整h代表的數值,可以畫出不同高度的聖誕樹!接下來,我們用之前學過的turtle庫來試試看吧!turtle - 聖誕卡片!
  • 代碼詳解:Python虛擬環境的原理及使用
    要在機器上運行測試項目,Sara需要做的就是在項目的根目錄中創建一個虛擬環境:Sara% cd test-project/Sara% python3 -m venv venv/並使用pip install -r requirements.txt將項目的依賴項安裝在活動的虛擬環境中。
  • 用python識別驗證碼
    今天,我們就簡單的說下,怎麼用python來處理驗證碼。(注意:我所有的python相關的文章用的都是python3。)準備工作1、tesseract-ocr軟體Tesseract的OCR引擎最先由HP實驗室於1985年開始研發,至1995年時已經成為OCR業內最準確的三款識別引擎之一。然而,HP不久便決定放棄OCR業務,Tesseract也從此塵封。
  • 用Python做特效,分分鐘碾壓五毛黨
    2、模塊安裝我們需要使用到的模塊主要有如下幾個:pillowopencvmoviepypaddlehub都可以直接用用paddlehub摳圖。我們這裡直接用pip安裝cpu版本的:# 安裝paddlepaddlepython -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple# 安裝paddlehub
  • 「python opencv計算機視覺零基礎到實戰」九模糊
    一、學習目標了解什麼是卷積了解模糊的使用方法與應用目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python opencv視覺入門到實戰」 第四節色彩空間