小編給大家分享一下全平臺都能用的pandas運算加速神器modin怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
為峨邊彝族等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及峨邊彝族網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、峨邊彝族網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
modin
就是一個致力于在改變代碼量最少的前提下,調(diào)用起多核計算資源,對pandas
的計算過程進行并行化改造的Python
庫,并且隨著其近期的一系列內(nèi)容更新,modin
基于Dask
開始對Windows
系統(tǒng)同樣進行了支持,使得我們只需要改變一行代碼,就可以在所有平臺上獲得部分pandas
功能可觀的計算效率提升。
圖1
modin
支持Windows
、Linux
以及Mac
系統(tǒng),其中Linux
與Mac
平臺版本的modin
工作時可基于并行運算框架Ray
和Dask
,而Windows
平臺版本目前只支持Dask
作為計算后端(因為Ray
沒有Win
版本),安裝起來十分方便,可以用如下3種命令來安裝具有不同后端的modin
:
pip install modin[dask] # 安裝dask后端 pip install modin[ray] # 安裝ray后端(windows不支持) pip install modin[all] # 推薦方式,自動安裝當(dāng)前系統(tǒng)支持的所有后端
本文在Win10
系統(tǒng)上演示modin
的功能,執(zhí)行命令:
pip install modin[all]
成功安裝modin
+dask
之后,在使用modin
時,只需要將我們習(xí)慣的import pandas as pd
變更為import modin.pandas as pd
即可,接下來我們來看一下在一些常見功能上,pandas
VSmodin
性能差異情況。
首先我們分別使用pandas
和modin
讀入一個大小為1.1G的csv
文件esea_master_dmg_demos.part1.csv
,來自kaggle
(https://www.kaggle.com/skihikingkevin/csgo-matchmaking-damage/data),記錄了關(guān)于熱門游戲CS:GO
的一些玩家行為數(shù)據(jù),因為體積過大,請感興趣的讀者朋友自行去下載:
圖2
為了區(qū)分他們,在導(dǎo)入時暫時將modin.pandas
命名為mpd
:
圖3
可以看到因為是Win
平臺,所以使用的計算后端為Dask
,首先我們來分別讀入文件查看耗時:
圖4
借助jupyter notebook
記錄計算時間的插件,可以看到原生的pandas
耗時14.8秒,而modin
只用了5.32秒,接著我們再來試試concat
操作:
圖5
可以看到在pandas
花了8.78秒才完成任務(wù)的情況下,modin
僅用了0.174秒,取得了驚人的效率提升。接下來我們再來執(zhí)行常見的檢查每列缺失情況的任務(wù):
圖6
這時耗時差距雖然不如concat
操作時那么巨大,也是比較可觀的,但是modin
畢竟是一個處于快速開發(fā)迭代階段的工具,其針對pandas
的并行化改造尚未覆蓋全部的功能,譬如分組聚合功能。
對于這部分功能,modin
會在執(zhí)行代碼時檢查自己是否支持,對于尚未支持的功能modin
會自動切換到pandas
單核后端來執(zhí)行運算,但由于modin
中組織數(shù)據(jù)的形式與pandas
不相同,所以中間需要經(jīng)歷轉(zhuǎn)換:
圖7
這種時候modin
的運算反而會比pandas
慢很多:
圖8
因此我對modin
持有的態(tài)度是在處理大型數(shù)據(jù)集時,部分應(yīng)用場景可以用其替換pandas
,即其已經(jīng)完成可靠并行化改造的pandas
功能,你可以在官網(wǎng)對應(yīng)界面(https://modin.readthedocs.io/en/latest/supported_apis/index.html )查看其已經(jīng)支持及尚未良好支持的功能,,因為modin
還處于快速開發(fā)階段,很多目前無法支持的功能也許未來不久就會被加入modin
:
圖9
以上是“全平臺都能用的pandas運算加速神器modin怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!