numpy.pad

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

填充数组。

参数
arrayn阶数组

要填充的数组。

pad_width序列,数组类,int_

填充到每个轴边缘的值的数目。(在“1”之前,在“1”之后),…(n之前,n之后)每个轴的唯一焊盘宽度。(之前,之后),对于每个轴,生成相同的前后pad。(pad,)或int是before=after=所有轴的pad宽度的快捷方式。

modestr或function,可选

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

“常量”(默认)

具有恒定值的焊盘。

“边缘”

用数组的边值填充。

'linear_ramp'

在结束值和数组边缘值之间具有线性渐变的焊盘。

最大值

沿每个轴的全部或部分矢量的最大值。

“吝啬鬼”

与沿每个轴的全部或部分矢量的平均值相加。

“中位数”

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

“最小”

沿每个轴的矢量的全部或部分的最小值。

“反映”

在每个轴上向量的第一个值和最后一个值上镜像向量的反射。

“对称”

带有沿阵列边缘镜像的向量反射的焊盘。

“包装”

用矢量沿轴的环绕来填充。第一个值用于填充结束,结束值用于填充开始。

'空'

具有未定义值的焊盘。

1.17 新版功能.

<函数>

填充函数,请参见注释。

stat_length序列或int,可选

用于“最大值”、“平均值”、“中间值”和“最小值”。用于计算统计值的每个轴边缘的值数。

(在“1”之前,在“1”之后),…(n之前,n之后)每个轴的唯一统计长度。

(之前、之后)生成每个轴的统计长度前后相同的结果。

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

None ,以使用整个轴。

constant_values序列或标量,可选

在“常量”中使用。为每个轴设置填充值的值。

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

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

(constant,)constant 是的快捷方式 before = after = constant 对于所有轴。

默认值为0。

end_values序列或标量,可选

用于“线性”斜坡。用于线性_渐变结束值的值,该值将形成填充数组的边缘。

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

((before, after),) 为每个轴生成相同的前后结束值。

(constant,)constant 是的快捷方式 before = after = constant 对于所有轴。

默认值为0。

reflect_type'偶数','奇数',可选

用于“反射”和“对称”。“偶数”样式是默认样式,边缘值周围的反射不变。对于“奇数”样式,数组的扩展部分是通过从边缘值的两倍中减去反射值来创建的。

返回
pad恩达雷

填充的秩数组等于 array 随着形状的增加 pad_width .

笔记

1.7.0 新版功能.

对于秩大于1的数组,后一个轴的某些填充是根据前一个轴的填充计算的。对于排名2的数组,最容易想到的是使用第一个轴的填充值计算填充数组的角。

padding函数(如果使用)应该适当地修改秩1数组。它有以下签名:

padding_func(vector, iaxis_pad_width, iaxis, kwargs)

在哪里?

矢量恩达雷

已经用零填充的秩1数组。填充值是向量 [:iaxis_pad_width[0] 和向量 [-iaxis_pad_width[1] :

iaxis_pad_width元组

两元组整数,i轴pad宽度 [0] 表示在向量开始处填充的值数,其中iaxis_pad_width [1] 表示矢量末尾填充的值数。

IAXIS利息

当前正在计算的轴。

关键字参数双关语

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

实例

>>> 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]])