溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

全平臺都能用的pandas運算加速神器modin怎么用

發(fā)布時間:2021-11-30 10:30:56 來源:億速云 閱讀:480 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下全平臺都能用的pandas運算加速神器modin怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!


1 簡介

modin就是一個致力于在改變代碼量最少的前提下,調(diào)用起多核計算資源,對pandas的計算過程進行并行化改造的Python庫,并且隨著其近期的一系列內(nèi)容更新,modin基于Dask開始對Windows系統(tǒng)同樣進行了支持,使得我們只需要改變一行代碼,就可以在所有平臺上獲得部分pandas功能可觀的計算效率提升。

全平臺都能用的pandas運算加速神器modin怎么用

圖1

2 基于modin的pandas運算加速

modin支持Windows、Linux以及Mac系統(tǒng),其中LinuxMac平臺版本的modin工作時可基于并行運算框架RayDask,而Windows平臺版本目前只支持Dask作為計算后端(因為Ray沒有Win版本),安裝起來十分方便,可以用如下3種命令來安裝具有不同后端的modin

pip install modin[dask] # 安裝dask后端
pip install modin[ray] # 安裝ray后端(windows不支持)
pip install modin[all] # 推薦方式,自動安裝當前系統(tǒng)支持的所有后端

本文在Win10系統(tǒng)上演示modin的功能,執(zhí)行命令:

pip install modin[all]

成功安裝modin+dask之后,在使用modin時,只需要將我們習慣的import pandas as pd變更為import modin.pandas as pd即可,接下來我們來看一下在一些常見功能上,pandasVSmodin性能差異情況。

首先我們分別使用pandasmodin讀入一個大小為1.1G的csv文件esea_master_dmg_demos.part1.csv,來自kaggle(https://www.kaggle.com/skihikingkevin/csgo-matchmaking-damage/data),記錄了關于熱門游戲CS:GO的一些玩家行為數(shù)據(jù),因為體積過大,請感興趣的讀者朋友自行去下載:

全平臺都能用的pandas運算加速神器modin怎么用

圖2

為了區(qū)分他們,在導入時暫時將modin.pandas命名為mpd

全平臺都能用的pandas運算加速神器modin怎么用

圖3

可以看到因為是Win平臺,所以使用的計算后端為Dask,首先我們來分別讀入文件查看耗時:

全平臺都能用的pandas運算加速神器modin怎么用

圖4

借助jupyter notebook記錄計算時間的插件,可以看到原生的pandas耗時14.8秒,而modin只用了5.32秒,接著我們再來試試concat操作:

全平臺都能用的pandas運算加速神器modin怎么用

圖5

可以看到在pandas花了8.78秒才完成任務的情況下,modin僅用了0.174秒,取得了驚人的效率提升。接下來我們再來執(zhí)行常見的檢查每列缺失情況的任務:

全平臺都能用的pandas運算加速神器modin怎么用

圖6

這時耗時差距雖然不如concat操作時那么巨大,也是比較可觀的,但是modin畢竟是一個處于快速開發(fā)迭代階段的工具,其針對pandas的并行化改造尚未覆蓋全部的功能,譬如分組聚合功能。

對于這部分功能,modin會在執(zhí)行代碼時檢查自己是否支持,對于尚未支持的功能modin會自動切換到pandas單核后端來執(zhí)行運算,但由于modin中組織數(shù)據(jù)的形式與pandas不相同,所以中間需要經(jīng)歷轉(zhuǎn)換:

全平臺都能用的pandas運算加速神器modin怎么用

圖7

這種時候modin的運算反而會比pandas慢很多:

全平臺都能用的pandas運算加速神器modin怎么用

圖8

因此我對modin持有的態(tài)度是在處理大型數(shù)據(jù)集時,部分應用場景可以用其替換pandas,即其已經(jīng)完成可靠并行化改造的pandas功能,你可以在官網(wǎng)對應界面(https://modin.readthedocs.io/en/latest/supported_apis/index.html )查看其已經(jīng)支持及尚未良好支持的功能,,因為modin還處于快速開發(fā)階段,很多目前無法支持的功能也許未來不久就會被加入modin

全平臺都能用的pandas運算加速神器modin怎么用

圖9

以上是“全平臺都能用的pandas運算加速神器modin怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI