Python 中的 Dask 简介
由于数据呈指数级增长,拥有能够管理大规模数据处理的工具变得越来越重要。Dask 是一个用于 Python 分析计算的多功能并行计算框架,就是这样一种工具。本文将为您提供 Dask 的全面介绍以及有用的示例,帮助您入门。
什么是 Dask?
Dask 是一个 Python 并行计算框架,它具有适应性,并且可以轻松创建用户友好的工作流,用于摄取、过滤和分析大型数据集。它擅长处理不适合内存的大规模数据集,并与 NumPy、Pandas 和 Scikit-Learn 等知名 Python API 无缝集成。
Dask 入门
可以使用 Python 的包安装程序 Pip 来安装 Dask −
pip install dask
使用 Dask 进行大规模计算
现在让我们看看如何将 Dask 用于大规模计算。
示例 1:使用 Dask Array
Dask Array 使用块算法实现了 NumPy ndarray 接口的一部分。以下是如何构建 Dask Array 并使用它运行计算 −
import dask.array as da x = da.random.random((10000, 10000), chunks=(1000, 1000)) y = x + x.T z = y[::2, 5000:].mean(axis=1) z.compute()
此示例中的计算使用 compute() 函数执行。Dask 将数组分成块,并分别处理每个块,从而最大程度地利用可用的 RAM。
示例 2:使用 Dask DataFrame
Dask DataFrame 是一个大型并行 DataFrame,由沿着索引分隔的较小的 Pandas DataFrame 组成;下面是 Dask DataFrame 上的操作示例 −
import dask.dataframe as dd
df = dd.demo.make_timeseries('2000', '2001', freq='1d', dtypes={'A': float, 'B': int})
result = df.groupby(df.index.month).mean()
result.compute()
在此示例中,使用时间序列 DataFrame 为每个月计算了列的平均值。Dask DataFrame 操作是延迟评估的,并且像 Dask Array 一样,使用 compute() 启动计算。
示例 3:使用 Dask Delayed
Dask Delayed 是一种快速有效的并行化现有代码的方法。它允许用户将函数评估延迟到并发作业中。这是一个示例 −
from dask import delayed @delayed def increment(x): return x + 1 @delayed def add(x, y): return x + y x = increment(15) y = increment(30) z = add(x, y) z.compute()
在此示例中,延迟装饰器包装了 add 和 increment 函数,使它们变为延迟的。使用 calculate() 启动实际计算。
示例 4:使用 Dask Bag 处理非结构化数据
Dask Bag(也称为 dask.bag 或 db)最适合在将数据转换为 Dask 数组或数据帧之前准备数据。文本数据、日志文件和 JSON 记录等非结构化或半结构化数据由 Dask Bag 有效地处理。
import dask.bag as db data = db.from_sequence(['Alice', 'Bob', 'Charlie', 'Dennis', 'Edith', 'Frank'], npartitions=3) result = data.map(lambda x: (x, len(x))) result.compute()
示例 5:使用 Dask ML 进行可扩展的机器学习
Dask ML 在 Python 中提供了可扩展的机器学习,它利用 Dask 以及 Scikit-Learn 等流行的机器学习框架。
from dask_ml.cluster import KMeans import dask.array as da X = da.random.random((10000, 50), chunks=(1000, 50)) clf = KMeans(n_clusters=5) clf.fit(X)
在此示例中,我们使用 Dask Array 创建一个大型数据集,并使用来自 Dask ML 的 KMeans 聚类算法。
结论
Dask 是一个用于大规模计算的顶级选择,它是一个开源的 Python 库。它旨在与 NumPy、Pandas 和 Scikit-Learn 等已安装的 Python 库平滑地协同工作。在大数据时代,它为多核处理和分布式计算提供了可扩展的解决方案。
在本介绍中,我们已经探讨了 Dask 的许多功能,包括其安装、数据结构以及在 Python 编程中的使用。给定的示例演示了 Dask 的功能,包括处理大型 Dask 数组、并行化 Dask 数据帧上的操作、使用 Dask delayed 进行延迟评估、使用 Dask bag 处理非结构化数据以及使用 Dask ML 执行可扩展的机器学习。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP