python包:Dask介绍

Dask是一个用于Python的灵活并行计算库,它提供了与NumPy、Pandas和迭代器相似的接口,支持动态调度和任务图,能够从个人电脑扩展到集群。Dask DataFrame模仿Pandas,Dask Array模仿NumPy,而Dask Bag则模仿迭代器。该库广泛应用于数据科学和高性能计算,包括NetCDF和HDF文件的数据存储以及在HPC系统和Kubernetes上的部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先上官方文档:Dask
搜索相关问题:Stack Overflow with the #dask tag

Anaconda默认安装了Dask,因此我们不需要再另外安装Dask。并且linux和window都可以使用。

介绍

Dask核心图片来源:https://docs.dask.org/en/latest/index.html

一句话总结: Dask is a flexible library for parallel computing in Python.

  1. 动态调度资源提供并行计算(加速)
  2. 并行化的数据集成提供接口给numpy,pandas或者python迭代器(提供接口)
  3. Task Graph 任务图非常清晰,使得开发人员和用户都可以自由地构建复杂的算法,并处理大多数数据工程框架中常见的map/filter/groupby范式难以处理的混乱情况。(帮助理解)
  4. 从个人电脑->集群(用途广泛)

简单的对比

Dask DataFrame mimics Pandas

import pandas as pd                     import dask.dataframe as dd
df = pd.read_csv('2015-01-01.csv')      df = dd.read_csv('2015-*-*.csv')
df.groupby(df.user_id).value.mean()     df.groupby(df.user_id).value.mean().compute()

Dask Array mimics NumPy

import numpy as np                       import dask.array as da
f = h5py.File('myfile.hdf5')             f = h5py.File('myfile.hdf5')
x = np.array(f['/small-data'])           x = da.from_array(f['/big-data'],
                                                           chunks=(1000, 1000))
x - x.mean(axis=1)                       x - x.mean(axis=1).compute()

Dask Bag mimics iterators, Toolz, and PySpark

import dask.bag as db
b = db.read_text('2015-*-*.json.gz').map(json.loads)
b.pluck('name').frequencies().topk(10, lambda pair: pair[1]).compute()

简单的案例 NCAR: Hydrological Modeling

  • We use Xarray to provide a higher level (and familiar) interface around Numpy arrays and Dask arrays
  • We use NetCDF and HDF files for data storage
  • I mostly work on HPC systems and have been helping develop the dask-jobqueue package for deploying Dask on job queueing systems
  • In the Pangeo project, we’re exploring Dask applications using Kubernetes and Jupyter notebooks

总结:

Dask给我们提供了两大功能:

  1. 并行化计算:array、dataframe、function…
  2. 进程图或者任务图:Diagnostics、Dask schedulers、task graphs

在目前(2020)主要使用 install in single-machine

  • High Level

    • Arrays: Parallel NumPy
    • Bags: Parallel lists
    • DataFrames: Parallel Pandas
    • Machine Learning : Parallel Scikit-Learn
    • Others from external projects, like XArray
  • Low Level

    • Delayed: Parallel function evaluation
    • Futures: Real-time parallel function evaluation

  • Dask Task Stream
  • Dask progress

还没掌握(2020.4.23)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值