探索python?dask靈活的并行計算庫應(yīng)用場景示例
引言
今天給大家分享一個超強的 python 庫,dask
Dask 的特點
動態(tài)任務(wù)調(diào)度:Dask 能夠智能地安排復(fù)雜的計算任務(wù),優(yōu)化資源利用率。
兼容性:Dask 提供了與這些庫相似的 API,允許用戶輕松遷移到更大規(guī)模的數(shù)據(jù)處理上。
延遲計算:Dask 允許構(gòu)建一個任務(wù)圖,其中計算是延遲執(zhí)行的,直到需要其結(jié)果時才真正觸發(fā)計算。
透明地擴展到分布式計算:Dask 可以在單機上以多線程或多進程的方式運行,也可以擴展到多機的分布式集群。
庫的安裝
我們可以直接使用 pip 來進行安裝。
pip install dask
或者使用 conda 來安裝。
conda install dask
數(shù)據(jù)集生成
我們將創(chuàng)建一個包含六列的虛擬數(shù)據(jù)集。
第一列是時間戳—以秒的間隔采樣的二年,其他五列是隨機整數(shù)值。
import numpy as np
import pandas as pd
import dask.dataframe as dd
from datetime import datetime
dates = pd.date_range(
start=datetime(year=2022, month=1, day=1),
end=datetime(year=2023, month=12, day=31),
freq='s'
)
df = pd.DataFrame()
df['Date'] = dates
for i in range(5):
df[f'X{i}'] = np.random.randint(low=0, high=100, size=len(df))
df.to_csv(f'2022.csv', index=False)性能對比
首先,讓我們使用 pandas 來運行 groupby 計算并建立性能基線。
%%timeit
df.groupby("X0").agg({"X4": "sum"})
可以看到使用 pandas 進行 groupby 操作,需要耗費 831 ms
讓我們使用 Dask 運行相同的 groupby 查詢。
import dask.dataframe as dd
ddf = dd.read_csv('2022.csv')%%timeit
ddf.groupby("X0").agg({"X4": "sum"})對于同樣的操作,使用 dask 只需要 4 ms ,性能有了顯著的提升。

這是因為 pandas 僅使用 1 個 CPU 核心來運行查詢。而 Dask 使用所有核心來運行計算。
以上就是探索python dask靈活的并行計算庫應(yīng)用場景示例的詳細內(nèi)容,更多關(guān)于python dask并行計算庫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Python實現(xiàn)全攝像頭拍照與鍵盤輸入監(jiān)聽功能
這篇文章主要介紹了使用Python實現(xiàn)全攝像頭拍照與鍵盤輸入監(jiān)聽功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
詳解Python中range()與xrange()的區(qū)別
range()?和?xrange()?是兩個函數(shù),可用于在?Python的?for?循環(huán)中迭代一定次數(shù)。本文將通過示例詳細說說二者的區(qū)別與使用,需要的可以參考一下2022-09-09
python linecache讀取行更新的實現(xiàn)
本文主要介紹了python linecache讀取行更新的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03
python爬蟲系列Selenium定向爬取虎撲籃球圖片詳解
這篇文章主要介紹了python爬蟲系列Selenium定向爬取虎撲籃球圖片詳解,具有一定參考價值,喜歡的朋友可以了解下。2017-11-11
基于python3抓取pinpoint應(yīng)用信息入庫
這篇文章主要介紹了基于python3抓取pinpoint應(yīng)用信息入庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01

