您好,登錄后才能下訂單哦!
小編給大家分享一下全平臺都能用的pandas運算加速神器modin怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
modin
就是一個致力于在改變代碼量最少的前提下,調用起多核計算資源,對pandas
的計算過程進行并行化改造的Python
庫,并且隨著其近期的一系列內容更新,modin
基于Dask
開始對Windows
系統同樣進行了支持,使得我們只需要改變一行代碼,就可以在所有平臺上獲得部分pandas
功能可觀的計算效率提升。
圖1
modin
支持Windows
、Linux
以及Mac
系統,其中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] # 推薦方式,自動安裝當前系統支持的所有后端
本文在Win10
系統上演示modin
的功能,執行命令:
pip install modin[all]
成功安裝modin
+dask
之后,在使用modin
時,只需要將我們習慣的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),記錄了關于熱門游戲CS:GO
的一些玩家行為數據,因為體積過大,請感興趣的讀者朋友自行去下載:
圖2
為了區分他們,在導入時暫時將modin.pandas
命名為mpd
:
圖3
可以看到因為是Win
平臺,所以使用的計算后端為Dask
,首先我們來分別讀入文件查看耗時:
圖4
借助jupyter notebook
記錄計算時間的插件,可以看到原生的pandas
耗時14.8秒,而modin
只用了5.32秒,接著我們再來試試concat
操作:
圖5
可以看到在pandas
花了8.78秒才完成任務的情況下,modin
僅用了0.174秒,取得了驚人的效率提升。接下來我們再來執行常見的檢查每列缺失情況的任務:
圖6
這時耗時差距雖然不如concat
操作時那么巨大,也是比較可觀的,但是modin
畢竟是一個處于快速開發迭代階段的工具,其針對pandas
的并行化改造尚未覆蓋全部的功能,譬如分組聚合功能。
對于這部分功能,modin
會在執行代碼時檢查自己是否支持,對于尚未支持的功能modin
會自動切換到pandas
單核后端來執行運算,但由于modin
中組織數據的形式與pandas
不相同,所以中間需要經歷轉換:
圖7
這種時候modin
的運算反而會比pandas
慢很多:
圖8
因此我對modin
持有的態度是在處理大型數據集時,部分應用場景可以用其替換pandas
,即其已經完成可靠并行化改造的pandas
功能,你可以在官網對應界面(https://modin.readthedocs.io/en/latest/supported_apis/index.html )查看其已經支持及尚未良好支持的功能,,因為modin
還處于快速開發階段,很多目前無法支持的功能也許未來不久就會被加入modin
:
圖9
以上是“全平臺都能用的pandas運算加速神器modin怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。