dask.array.pad

dask.array.pad

dask.array.pad(array, pad_width, mode='constant', **kwargs)[源代码]

填充数组。

此文档字符串是从 numpy.pad 复制的。

Dask 版本可能存在一些不一致性。

参数
数组N 秩的类数组对象

要填充的数组。

pad_width{序列, 类数组, 整数}

每个轴边缘填充的数值数量。((before_1, after_1), ... (before_N, after_N)) 每个轴的唯一填充宽度。(before, after)((before, after),) 为每个轴提供相同的填充前和填充后。(pad,)int 是所有轴的填充前和填充后等于填充宽度的快捷方式。

模式str 或 function,可选

以下字符串值之一或用户提供的函数。

‘常量’ (默认)

用常数值填充。

‘边缘’

使用数组的边缘值进行填充。

‘linear_ramp’

在 end_value 和数组边缘值之间用线性斜坡填充。

‘最大’

沿每个轴用向量的全部或部分的最大值进行填充。

‘平均’

在每个轴上用所有或部分向量的平均值填充。

‘中位数’

沿每个轴用向量的全部或部分的中值填充。

‘最小’

在每个轴上用向量所有或部分的最小值进行填充。

‘反射’

在每个轴上,用向量的反射填充,该反射在向量的第一个和最后一个值上镜像。

‘对称’

使用数组边缘沿向量反射的镜像来填充。

‘wrap’

沿轴对向量进行填充。首先使用前值填充末端,然后使用末值填充起始端。

‘空’

填充未定义的值。

1.17 新版功能.

<函数>

填充函数,见注释。

stat_length序列或整数,可选

用于 ‘最大值’, ‘平均值’, ‘中位数’, 和 ‘最小值’。 每个轴边缘使用的数值数量,用于计算统计值。

((before_1, after_1), ... (before_N, after_N)) 每个轴的唯一统计长度。

(before, after)((before, after),) 为每个轴产生相同的统计长度。

(stat_length,)int 是所有轴的 before = after = statistic 长度的快捷方式。

默认值为 None,以使用整个轴。

constant_values序列或标量,可选

用于 ‘constant’。设置每个轴的填充值。

((before_1, after_1), ... (before_N, after_N)) 每个轴的唯一填充常数。

(before, after)((before, after),) 为每个轴生成相同的 before 和 after 常量。

(constant,)constantbefore = after = constant 的快捷方式,适用于所有轴。

默认值为 0。

end_values序列或标量,可选

用于 ‘linear_ramp’。这些值用于线性斜坡的结束值,并将形成填充数组的边缘。

((before_1, after_1), ... (before_N, after_N)) 每个轴的唯一结束值。

(before, after)((before, after),) 为每个轴生成相同的开始和结束值。

(constant,)constantbefore = after = constant 的快捷方式,适用于所有轴。

默认值为 0。

reflect_type{‘even’, ‘odd’}, 可选

用于 ‘reflect’ 和 ‘symmetric’。’even’ 样式是默认的,围绕边缘值进行未改变的反射。对于 ‘odd’ 样式,数组的扩展部分是通过将反射值从两倍的边缘值中减去来创建的。

返回
填充ndarray

填充后的数组,其秩与 array 相同,形状根据 pad_width 增加。

注释

1.7.0 新版功能.

对于秩大于1的数组,一些后续轴的填充是根据前一轴的填充计算的。对于秩为2的数组,这一点最容易理解,其中填充数组的角是通过使用第一轴的填充值计算的。

填充函数(如果使用)应就地修改秩为1的数组。它具有以下签名:

padding_func(vector, iaxis_pad_width, iaxis, kwargs)

哪里

向量ndarray

一个已经用零填充的秩为1的数组。填充的值是 vector[:iaxis_pad_width[0]] 和 vector[-iaxis_pad_width[1]:]。

iaxis_pad_width元组

一个由两个整数组成的元组,iaxis_pad_width[0] 表示在向量开始处填充的数值数量,而 iaxis_pad_width[1] 表示在向量末尾处填充的数值数量。

iaxis整数

当前正在计算的轴。

kwargsdict

函数所需的任何关键字参数。

示例

>>> import numpy as np  
>>> a = [1, 2, 3, 4, 5]  
>>> np.pad(a, (2, 3), 'constant', constant_values=(4, 6))  
array([4, 4, 1, ..., 6, 6, 6])
>>> np.pad(a, (2, 3), 'edge')  
array([1, 1, 1, ..., 5, 5, 5])
>>> np.pad(a, (2, 3), 'linear_ramp', end_values=(5, -4))  
array([ 5,  3,  1,  2,  3,  4,  5,  2, -1, -4])
>>> np.pad(a, (2,), 'maximum')  
array([5, 5, 1, 2, 3, 4, 5, 5, 5])
>>> np.pad(a, (2,), 'mean')  
array([3, 3, 1, 2, 3, 4, 5, 3, 3])
>>> np.pad(a, (2,), 'median')  
array([3, 3, 1, 2, 3, 4, 5, 3, 3])
>>> a = [[1, 2], [3, 4]]  
>>> np.pad(a, ((3, 2), (2, 3)), 'minimum')  
array([[1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1],
       [3, 3, 3, 4, 3, 3, 3],
       [1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1]])
>>> a = [1, 2, 3, 4, 5]  
>>> np.pad(a, (2, 3), 'reflect')  
array([3, 2, 1, 2, 3, 4, 5, 4, 3, 2])
>>> np.pad(a, (2, 3), 'reflect', reflect_type='odd')  
array([-1,  0,  1,  2,  3,  4,  5,  6,  7,  8])
>>> np.pad(a, (2, 3), 'symmetric')  
array([2, 1, 1, 2, 3, 4, 5, 5, 4, 3])
>>> np.pad(a, (2, 3), 'symmetric', reflect_type='odd')  
array([0, 1, 1, 2, 3, 4, 5, 5, 6, 7])
>>> np.pad(a, (2, 3), 'wrap')  
array([4, 5, 1, 2, 3, 4, 5, 1, 2, 3])
>>> def pad_with(vector, pad_width, iaxis, kwargs):  
...     pad_value = kwargs.get('padder', 10)
...     vector[:pad_width[0]] = pad_value
...     vector[-pad_width[1]:] = pad_value
>>> a = np.arange(6)  
>>> a = a.reshape((2, 3))  
>>> np.pad(a, 2, pad_with)  
array([[10, 10, 10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10, 10, 10],
       [10, 10,  0,  1,  2, 10, 10],
       [10, 10,  3,  4,  5, 10, 10],
       [10, 10, 10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10, 10, 10]])
>>> np.pad(a, 2, pad_with, padder=100)  
array([[100, 100, 100, 100, 100, 100, 100],
       [100, 100, 100, 100, 100, 100, 100],
       [100, 100,   0,   1,   2, 100, 100],
       [100, 100,   3,   4,   5, 100, 100],
       [100, 100, 100, 100, 100, 100, 100],
       [100, 100, 100, 100, 100, 100, 100]])