dask.array.overlap.overlap

dask.array.overlap.overlap

dask.array.overlap.overlap(x, depth, boundary, *, allow_rechunk=True)[源代码]

共享相邻块之间的边界

参数
x: da.Array

一个 dask 数组

depth: dict

每个轴的共享边界的大小

边界: dict

每个轴上的边界条件。选项有 ‘reflect’、’periodic’、’nearest’、’none’,或是一个数组值。这样的值将用该值填充边界。

allow_rechunk: bool, 仅关键字参数

允许重新分块,否则块大小需要匹配,核心维度只能由一个块组成。

深度输入指示相邻单元格之间重叠的单元格数量
块 ``{0: 2, 2: 5}`` 表示在0轴上共享两个单元格,在2轴上共享五个单元格。
此输入中缺失的轴将不会重叠。
任何包含小于深度块的轴将被重新分块,如果
可能的,前提是关键字 ``allow_rechunk`` 为 True(推荐)。

示例

>>> import numpy as np
>>> import dask.array as da
>>> x = np.arange(64).reshape((8, 8))
>>> d = da.from_array(x, chunks=(4, 4))
>>> d.chunks
((4, 4), (4, 4))
>>> g = da.overlap.overlap(d, depth={0: 2, 1: 1},
...                       boundary={0: 100, 1: 'reflect'})
>>> g.chunks
((8, 8), (6, 6))
>>> np.array(g)
array([[100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
       [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
       [  0,   0,   1,   2,   3,   4,   3,   4,   5,   6,   7,   7],
       [  8,   8,   9,  10,  11,  12,  11,  12,  13,  14,  15,  15],
       [ 16,  16,  17,  18,  19,  20,  19,  20,  21,  22,  23,  23],
       [ 24,  24,  25,  26,  27,  28,  27,  28,  29,  30,  31,  31],
       [ 32,  32,  33,  34,  35,  36,  35,  36,  37,  38,  39,  39],
       [ 40,  40,  41,  42,  43,  44,  43,  44,  45,  46,  47,  47],
       [ 16,  16,  17,  18,  19,  20,  19,  20,  21,  22,  23,  23],
       [ 24,  24,  25,  26,  27,  28,  27,  28,  29,  30,  31,  31],
       [ 32,  32,  33,  34,  35,  36,  35,  36,  37,  38,  39,  39],
       [ 40,  40,  41,  42,  43,  44,  43,  44,  45,  46,  47,  47],
       [ 48,  48,  49,  50,  51,  52,  51,  52,  53,  54,  55,  55],
       [ 56,  56,  57,  58,  59,  60,  59,  60,  61,  62,  63,  63],
       [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
       [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]])