当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.array.rechunk用法及代码示例


用法:

dask.array.rechunk(x, chunks='auto', threshold=None, block_size_limit=None, balance=False)

将 dask 数组 x 中的块转换为新块。

参数

x: dask array

要重新分块的数组。

chunks: int, tuple, dict or str, optional

要创建的新块尺寸。 -1 表示对应维度的全尺寸。默认值为“auto”,它自动确定块大小。

threshold: int, optional

我们不费心引入中间步骤的图增长因子。

block_size_limit: int, optional

我们要生成的最大块大小(以字节为单位)默认为配置值array.chunk-size

balance布尔值,默认为 False

如果为 True,请尝试使每个块的大小相同。

这意味着balance=True 将删除任何小的剩余块,因此使用x.rechunk(chunks=len(x) // N, balance=True) 几乎肯定会导致N 块。

例子

>>> import dask.array as da
>>> x = da.ones((1000, 1000), chunks=(100, 100))

使用元组指定统一的块大小

>>> y = x.rechunk((1000, 10))

或者只用字典分块特定的维度

>>> y = x.rechunk({0: 1000})

使用值 -1 指定您想要沿维度的单个块或值 "auto" 指定 dask 可以自由地重新分块维度以获得统一块大小的块

>>> y = x.rechunk({0: -1, 1: 'auto'}, block_size_limit=1e8)

如果一个块大小不划分维度,那么重新分块会将任何不均匀性留给最后一个块。

>>> x.rechunk(chunks=(400, -1)).chunks
((400, 400, 200), (1000,))

但是,如果您想要更平衡的块,并且不介意 Dask 为您选择不同的块大小,那么您可以使用 balance=True 选项。

>>> x.rechunk(chunks=(400, -1), balance=True).chunks
((500, 500), (1000,))

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.array.rechunk。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。