當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。