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

2020-12-11 大數據文摘

大數據文摘作品

編譯:大茜、錢天培

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/

相關焦點

  • 手把手 | 哇!用R也可以跑Python了
    通過安裝包,你現在可以在R上運行Python的安裝包和函數了~今天文摘菌就來教教你咋用這個reticulate包。運行下面的命令來安裝這個包、並導入到您的系統中。通過使用repl_python()函數,可以使Python和R交互。
  • 未來,不是【Python vs R】,而是【Python and R】
    用Wickham的話講,未來,不是「Python vs R」,而是「Python and R」。例如,2018年,McKinney的Ursa Labs宣布——即將與Wickham 的RStudio合作,致力於改進R和Python語言本身及其用戶體驗。
  • 數據科學探索(python 與 R 的比較)
    >1.4  建立預測模型1.4.1  python1.4.2  R1.5  Logistic1.5.1  python1.5.2  R1.6  決策樹1.6.1  python1.6.2  R1.7  隨機森林1.7.1  python1.7.2
  • rPython:在R語言中調用python命令
    通過發揮rPython的作用,可以很好的將Python與R語言結合在一起,兩者相輔相成,使數據分析工作更加得心應手。目錄      rPython簡介      rPython安裝介紹      rPython使用介紹rPython簡介rPython包用於在R語言環境中調用Python命令。
  • 教你怎樣用python進行語音識別
    當然,你可以租用一個國外的VPS來做這件事情。這裡講一下如何在不聯網的情況下,依然可以通過python來將語音文件轉換成文字。這裡用到的包為sphinx,sphinx是由美國卡內基梅隆大學開發的大詞彙量、非特定人、連續英語語音識別系統。
  • 特徵工程總結:R與python的比較實現
    4.3.2 Wrapper法(封裝法)   4.3.3 Embedded(集成法)  4.4降維      4.4.1PCA          4.4.2LDA1.特徵工程概述    特徵工程其實是一個偏工程的術語,在資料庫領域可能叫做屬性選擇,而在統計學領域叫變量選擇,其實是一個意思:即最大限度地從原始數據中提取有用信息以供算法和模型使用
  • 從0開始學python-6.2 用python讀寫文件
    我們還學習了用python來查找、重命名一個文件。這節課,我們一起學習一下怎麼用python操作一個文件的內容。文件操作對一個文件,我們可以1)讀取裡面的內容、2)往文件裡寫內容、3)追加文件內容。我們來看看用python怎麼做這些事情。打開文件在對文件內容操作之前,我們首先要打開文件。
  • Python中open()的使用方法,你造嗎?
    with open('foo.txt', 'w+') as f:     f.write('bar\n')     f.seek(0)      data = f.read()可以看到,上面這段代碼,它不但可以寫,還可以讀出來。注意要先定位到開頭,f.seek(0),不然讀出來的是空數據。
  • 「Python+cv2」Python安裝opencv及圖像的基本操作
    檢查python環境上面可以看出python版本是3.7。調用exit()函數可以退出python。如果對Python安裝有疑問的可以參考我的文章:手把手教你搭建Python3開發環境手把手教你安裝python編輯器pycharm2、檢查pip3是否安裝
  • 【Python基礎】python使用python-docx操作word
    1、python-docx庫介紹該模塊兒可以創建、修改Word(.docx)文件;python-docx使用官網:python-docx官網我們在安裝此模塊兒使用的是pip install python-docx,但是在導入的時候是import docx;2、Python讀取Word文檔內容注意:每進行一個操作,必須保存一下,否則等於白做;1)word文檔結構介紹在這裡插入圖片描述2)python-docx
  • Python __slots__ 詳解
    在當時來說,這相當於用一個非常簡單的方式就降低了30%的內存使用,著實驚人。2個類:❯ python mem_test.py aClass: A:Initial RAM usage:      4,890,624  Final RAM usage:    200,454,144❯ python mem_test.py bClass: B:Initial RAM usage
  • Python創建可以打開文件的EXE
    其中第一種其實和在cmd_try文件夾下的命令行窗口中輸入python hello.py效果相同,所以我們可以用這個來測試,測試結束後再生成exe文件帶有參數的exe程序因為我們的exe程序需要能夠打開一個文件,所以需要調用外部參數。
  • 手把手帶你,用 Python 寫一個 Monkey 自動化測試腳本!!!
    之前講解了 Android Monkey 命令的使用方式,今天趁著還熱乎就手把手用 Monkey 寫一個壓力測試的腳本。還不了解什麼是 Monkey 的,可以看看之前的文章,《關於 Monkey ,你所需要知道的,都在這裡!!!》。
  • 使用 R 與 python 進行 t 檢驗
    也就是說只要是正態分布或近似正態分布,就可以使用 t 檢驗。t檢驗是用 t 分布理論來推論差異發生的概率,他的檢驗有三種類型:例如,假設我們調查了一組男學生的身高,看看他們的平均值是否等於 170 cm。例如,我要檢查某有機肥是否有促進小麥品質的作用,我選了一組小麥施用該肥料,另一組施用常規化肥,最後我檢查某指標之間,二者是否有差異。
  • 手把手教你在手機或平板上配置Python環境!
    主題美化2.1 配色與字體長按屏幕,點擊More,選擇Style可以選擇配色和字體,推薦使用Neon配色和JetBrains Mono字體,也可以通過修改~/.termux/目錄下的colors.properties和font.ttf文件進行自定義。
  • 小派拾貝|7.用小程序實驗理解一下什麼是Python的風格
    或者是,基於最基礎的算法描述就可以了嗎?這些事,一線老師的咱們,也不太容易明白,但是編程的時候還真是遇見這些問題的。今天的學習就遇上了,分享給大家,就當技術小實驗,學不學、教不教不在本文討論之列的!    各位,咱們最近學Python,這東東真是迷一樣的存在!    各種神語法妙算法,我學得可帶勁了。
  • 手把手教你用Python進行時間序列分解和預測
    你可以在此處(https://otexts.com/fpp2/classical-decomposition.html)了解有關加法和乘法分解的更多信息。在下面的代碼中,要獲得時間序列的分解,只需賦值model=additive。
  • 用Python寫個在線Python的網站怎麼樣
    前幾天,一個朋友提出了一個建議,如何用python寫出python的解釋器,我感覺這是一個很好的問題,於是就去看看,打算用python寫一個試試
  • 利用Anaconda在Windows及Linux下搭建Python環境【手把手版】
    利用Anaconda在Windows及Linux下搭建Python環境【手把手版】❞本文目錄一、同系列好文二、Anaconda在Windows下搭建Python環境    1、下載    2、安裝    3、添加python到環境變量    4
  • 搞機器學習,Python 和 R 哪個更合適?
    這並不意味著必須把這兩個語言劃分到不同的領域 ——python也足以被用來作為數據分析的工具,R也具備充分的適應性可以完成機器學習中的重要工作。這兩種語言各自有大量的庫試圖去完成對方的功能。Python具有可以提升其顯著推斷能力的庫,R也有提升其預測精度的庫。