numpy.pad #
- 麻木的。pad ( array , pad_width , mode = 'constant' , ** kwargs ) [来源] #
填充一个数组。
- 参数:
- N 阶数组array_like
要填充的数组。
- pad_width {序列,array_like,int}
填充到每个轴边缘的值的数量。 每个轴都有独特的焊盘宽度。 或在每个轴的垫之前和之后产生相同的结果。 or是 before = after = 所有轴的焊盘宽度的快捷方式。
((before_1, after_1), ... (before_N, after_N))
(before, after)
((before, after),)
(pad,)
int
- 模式str 或函数,可选
以下字符串值之一或用户提供的函数。
- '常量'(默认)
具有恒定值的焊盘。
- '边缘'
用数组的边缘值填充。
- '线性斜坡'
使用 end_value 和数组边缘值之间的线性斜坡进行填充。
- '最大限度'
沿每个轴填充全部或部分向量的最大值。
- '意思是'
使用沿每个轴的全部或部分向量的平均值进行填充。
- “中位数”
沿每个轴填充全部或部分向量的中值。
- '最低限度'
沿每个轴使用全部或部分矢量的最小值进行填充。
- '反映'
具有向量反射的焊盘沿每个轴镜像在向量的第一个和最后一个值上。
- “对称”
具有沿阵列边缘镜像的矢量反射的焊盘。
- '裹'
用向量沿轴包裹的焊盘。第一个值用于填充末尾,结束值用于填充开头。
- '空的'
具有未定义值的焊盘。
1.17 版本中的新增功能。
- <功能>
填充功能,参见注释。
- stat_length序列或 int,可选
用于“最大值”、“平均值”、“中值”和“最小值”。用于计算统计值的每个轴边缘的值的数量。
((before_1, after_1), ... (before_N, after_N))
每个轴的唯一统计长度。(before, after)
或每个轴的统计长度之前和之后产生相同的结果。((before, after),)
(stat_length,)
or是所有轴长度int
的快捷方式 。before = after = statistic
默认为
None
,使用整个轴。- Constant_values序列或标量,可选
用于“常数”。用于设置每个轴的填充值的值。
((before_1, after_1), ... (before_N, after_N))
每个轴都有独特的焊盘常数。(before, after)
或为每个轴产生相同的前后常量。((before, after),)
(constant,)
或者是所有轴constant
的快捷方式 。before = after = constant
默认值为 0。
- end_values序列或标量,可选
用于“线性斜坡”。用于 Linear_ramp 的结束值的值,它将形成填充数组的边缘。
((before_1, after_1), ... (before_N, after_N))
每个轴的唯一最终值。(before, after)
或为每个轴产生相同的前后最终值。((before, after),)
(constant,)
或者是所有轴constant
的快捷方式 。before = after = constant
默认值为 0。
- Reflect_type {'偶数', '奇数'}, 可选
用于“反射”和“对称”。 “均匀”样式是默认样式,边缘值周围的反射不变。对于“奇数”样式,数组的扩展部分是通过从边缘值的两倍减go反射值来创建的。
- 返回:
- 填充ndarray
排名等于的填充数组,
array
形状根据pad_width增加。
笔记
1.7.0 版本中的新增内容。
对于秩大于 1 的数组,后面轴的一些填充是根据前面轴的填充计算的。对于 2 阶数组来说,这是最容易想到的,其中填充数组的角是通过使用第一个轴的填充值来计算的。
如果使用填充函数,则应就地修改 1 阶数组。它具有以下签名:
padding_func(vector, iaxis_pad_width, iaxis, kwargs)
在哪里
- 向量ndarray
排名 1 的数组已用零填充。填充值是向量[:iaxis_pad_width[0]]和向量[-iaxis_pad_width[1]:]。
- iaxis_pad_width 元组
一个整数的 2 元组,iaxis_pad_width[0] 表示在向量开头填充的值的数量,其中 iaxis_pad_width[1] 表示在向量末尾填充的值的数量。
- 轴整型
当前正在计算的轴。
- 夸格斯词典
函数需要的任何关键字参数。
例子
>>> 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]])