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

2022-01-06 大數據文摘


大數據文摘作品

編譯:大茜、錢天培

R還是Python?

真是個千古難題!

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

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

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

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

不過現在好消息來了!

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

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

運行下面的命令來安裝這個包、並導入到您的系統中。

# 安裝reticulate包
install.packages("reticulate")
# 加載reticulate包
library(reticulate)

py_available()

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

您可以使用函數import()來導入特定的包或模塊。

os <- import(「os」)
os$getcwd()

上面的命令返回工作目錄。

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

您可以使用os包中的listdir()函數來查看工作目錄中的所有文件。

os$listdir()

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

conda_create(「r-reticulate」)

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

conda_install(「r-reticulate」,「numpy」)

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

第三步:加載包。

numpy <- import(「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)

您可以在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會話

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

summary(py$t)

在這種情況下,我會用R的summary()函數並訪問在python中創建的數據集T。此外,您可以使用ggplot2軟體包繪製折線圖。

#利用ggplot2繪製線圖
library(ggplot2)
ggplot(py$t, aes(AIR, Year)) + geom_line()

您可以使用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軟體包是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))

運行py_config()命令來查看系統中安裝的R的版本。它還能顯示anaconda和numpy的詳細信息。

py_config()

可以用以下命令來檢查「pandas」是否安裝:

py_module_available(「pandas」)

原文連結:

https://www.r-bloggers.com/run-python-from-r/


【今日機器學習概念】

Have a Great Definition

相關焦點

  • Python基礎教程:r'', b'', u'', f'' 的含義
    收錄於話題 #python作用:相當於 format() 函數name = "小明"age = 12print(f"my name is {name},age is {age}")執行結果my name is 小明,age is 12字符串前加 r
  • 我用 Python 做了個小仙女代碼蹦迪視頻
    說幹就幹,今天就手把手教大家如何把跳舞視頻轉成代碼舞,跟著仙女姐姐一起蹦起來~2、對視頻進行截取GIF,把截取的GIF進行ASCII字符轉換首先我們需要準備工作,安裝you-get用來下載視頻。接下來我們要將下載的視頻進行GIF截取,方法也比較多,用python也可以實現。因為後面需要把GIF轉成ASCII字符,截取的GIF時長儘量不能太長,所以這裡就介紹通過迅雷播放器自帶的gif截取工具,每次截取20s。
  • 用Python製作一個貓咪小秒表
    要實現這樣的效果,用python就足夠了。主要用到的就是matplotlib包。首先,下載貓咪的gif圖,然後將gif圖切分成多張png圖。用這幾句代碼就可以實現:im=Image.open(infile)mypalette=im.getpalette()im.putpalette(mypalette)new_im=Image.new('RGBA',im.size)new_im.paste(im)new_im.save('image\\{}.png'.format(str(i))
  • python字符串前加r、f、u、l 的區別
    (目前支持python3.6版本) 下面看下f-strings的使用方法 基本使用(作用:替換值) 在字符串前加r可防止字符串轉義 作用:沒有轉義特殊或不能列印的字符。
  • 用 Python 找出了拉黑 QQ 空間屏蔽我的大人物
    準備工作python環境:python3.7.4第三方庫環境:requestslxmlthreadpoolselenium利用selenium模擬登陸獲取cookie並保存到本地h = 5381 for i in p_skey: h += (h << 5) + ord(i) g_tk = h & 2147483647 return g_tk在QQ空間好友欄獲取好友列表拿到加密參數後,接下來我們就只需要進剛才所說的空間好友欄頁面將所有的好友的QQ號抓下來,用urllib.parse.urlencode
  • Python 動態編譯器PyPy比其他動態編譯器的優點所在
    python的模塊導入機制中,可以自定義一些動作,以支持不同語法的導入。但一般情況沒有必要這樣做,python語法已經夠好了,沒有必要改成C語法。CPython就是用C語言開發的python平臺。還有Jyphon是用JAva實現的Python。還有一個更牛PyPy是用python實現的python。
  • 手把手教你用Python改造一款外星人入侵小遊戲
    這是我在【Python爬蟲與數據挖掘】公眾號的第二篇文章,第一篇文章寫的是冰冰女神,反響非常不錯,沒來得及圍觀的小夥伴,可以戳文章:手把手教你用Python網絡爬蟲+自動化來創建一位屬於你自己的虛擬女票(附源碼),覺得不錯,記得三連支持噢!
  • 實戰|手把手教你用Python爬蟲(附詳細源碼)
    而python只要運行幾分鐘就能把所有數據保存到你的excel裡,是不是很舒服?parse = etree.HTML(html)  #解析網頁解析完之後,就可以開開心心的提取我們所需要的數據了。方法很多,比如xpath、select、beautiful soup,還有最難的re(正則表達式)。本文爬取的數據結構較為簡單,就直接用xpath玩一下吧。
  • Python那些事——用pythonhon寫個繪圖工具!還怕什麼繪圖嗎!
    創建畫布是製作繪圖工具的前提,有了畫布我們就可以在畫布上盡情的揮灑自己的藝術細胞。還在為如何去繪圖煩惱的小夥伴趕緊看過來,這裡手把手教你解決問題~~~~Python那些事——用pythonhon寫個繪圖工具!還怕什麼繪圖嗎!!
  • 用ExcelPython在Excel中調用Python
    高度嵌入:似乎採用已經打包好的python函數,所以可以在不安裝python情況下表格程序可以擴展使用; 4. 對最終用戶高度透明:python由Excel VBA調用所以沒有不需要其他另外的中間程序插入,即使是表格程序已經升級了; 5.
  • 「python opencv視覺零基礎」十、圖片效果毛玻璃
    一、學習目標了解高斯模糊的使用方法了解毛玻璃的圖片效果添加了解如何自己做一個噪聲圖片目錄「python opencv 計算機視覺零基礎實戰」 第一節「python opencv視覺入門到實戰」二、格式與攝像頭「python opencv 視覺入門到實戰」 三、圖像編輯「python opencv視覺入門到實戰
  • 測試~python庫介紹(一) opencv
    如果只有前者,我們可以通過埋點的形式獲取,但涉及競品就只能通過視頻數幀的形式了。這個需求如果放在4年前,我的做法是這樣的1、取一款60FPS手機(若粒度精細可使用iPhone的慢動作,最高可達240fps),使用支架固定,打開開發者指針位置;2、取測試機放在鏡頭前,手動點擊app,跳轉完成後清除數據重複操作;3、用KMplayer播放視頻,按F鍵一幀一幀的計算圖像變化,算出啟用加載的總時長。
  • 手把手:用OpenCV親手給小扎、Musk等科技大佬們做一張「平均臉」(附Python代碼)
    文摘菌今天的手把手專欄將為大家介紹,如何用OpenCV隨心所欲幫各種人組合「平均臉」。完整的python代碼可在後臺回復「平均臉」獲取。讓我們先來看兩張文摘菌好奇的平均臉。成功男性科技界企業家平均臉長什麼樣?
  • Python基礎教程(一) - 快速入門
    從今天開始學習python,會將學習到的相關知識整理到這裡。今後的所有內容都基於Ubuntu系統中進行的,和其他語言一樣,讓我們先來"Hello World!"吧。Hello world!#!/usr/bin/python為Linux系統下Python解釋器的路徑,通常python解釋器的路徑安裝在/usr/local/bin或/usr/bin目錄下。程序輸入和raw_input()內建函數從用戶得到數據輸入的最好方式使用raw_input()函數,它讀取標準輸入,並將讀取到的數據賦值給指定的變量。
  • Python安裝教程
    這種語言具有非常簡捷而清晰的語法特點,適合完成各種高層任務,幾乎可以在所有的作業系統中運行。1.滑鼠右擊【Python3.9.2】壓縮包選擇【解壓到Python3.9.2】。3.滑鼠右擊【python-3.9.2-amd64.exe】選擇【以管理員身份運行】。
  • Python3.5生成自己的詞性詞典
    >微信公眾號: 大鄧帶你玩轉python  由於朋友需要做文本分析,前提是要將文本中的名詞和動詞剔除掉,但沒有現成的名詞和動詞的txt格式的詞典。建議大家使用python3.5,3的優點是避免了很多編碼問題。3代表著python的未來,大家還是應該多多的對未來投資。比如,我要生成形容詞的詞典。步驟:1、應先使用正則表達式,匹配含有『adj』的行字符串,返回的是list。
  • python-docx設置中文字體
    在python-docx包中對WORD文檔字體的設置要使用font類,只需要更改font.name屬性就可以了。然而,對於中文字體的設置遠不是這麼簡單。_element.rPr.rFonts.set(qn('w:eastAsia'), u'宋體') # 將段落中的所有字體paragraph1 = document.add_paragraph() # 添加一個段落run = paragraph1.add_run(u'aBCDefg這是中文')
  • 手把手教你使用Python製作高顏值詞雲圖
    我事先分別用python爬取了騰訊和老乾媽的回應微博下的評論(老乾媽沒有微博,換成了老乾媽警方公告下的評論),jieba分詞得到結果後,分別製作詞雲。左邊是用經典的wordcloud,右側則是今天的主角stylecloud。stylecloud簡介stylecloud 是一個 Python 包,一位數據科學家Max Woolf基於wordcloud優化改良而成。
  • Python繪製各種簡單優美曲線
    numpy 是一個用python實現的科學計算包,包括一個強大的N維數組對象Array和成熟的函數庫,有用於整合C/C++和Fortran代碼的工具包,提供了實用的線性代數、傅立葉變換和隨機數生成函數等工具,可以理解成Matlab。哪些看似抽象的數學公式,實際上是自己不知道她們的應用場景而已。
  • 「python opencv 計算機視覺零基礎實戰」第一節
    前置條件說明:本系列opencv實戰教程將從基礎到實戰,若只是簡單學習完python也可以通過該教程完成一般的機器學習編程;文中將會對很多python的基礎內容進行講解,但由於文章定位的原因將不會贅述過多的基礎內容,基礎內容進行第一次講解後第二次將不會過多贅述,本文主要講解的是opencv相關知識。