本文简要介绍 python 语言中 numpy.pad
的用法。
用法:
numpy.pad(array, pad_width, mode='constant', **kwargs)
填充一个数组。
- array: 秩为 N 的 数组
要填充的数组。
- pad_width: {sequence, 数组, int}
填充到每个轴边的值的数量。 ((before_1, after_1), ... (before_N, after_N)) 每个轴的唯一焊盘宽度。 ((before, after),) 在每个轴的 pad 之前和之后产生相同的结果。 (pad,) 或 int 是 before = after = 所有轴的焊盘宽度的快捷方式。
- mode: str 或函数,可选
以下字符串值之一或用户提供的函数。
- ‘constant’(默认)
具有恒定值的焊盘。
- ‘edge’
用数组的边值填充。
- ‘linear_ramp’
在end_value 和阵列边值之间具有线性斜坡的焊盘。
- ‘maximum’
使用沿每个轴的全部或部分向量的最大值填充。
- ‘mean’
使用沿每个轴的全部或部分向量的平均值填充。
- ‘median’
使用沿每个轴的全部或部分向量的中值填充。
- ‘minimum’
使用沿每个轴的全部或部分向量的最小值填充。
- ‘reflect’
具有矢量反射的焊盘镜像在沿每个轴的矢量的第一个和最后一个值上。
- ‘symmetric’
具有沿阵列边镜像的矢量反射的焊盘。
- ‘wrap’
使用沿轴的向量环绕的焊盘。第一个值用于填充结束,结束值用于填充开始。
- ‘empty’
具有未定义值的焊盘。
- <function>
填充函数,见注释。
- stat_length: 序列或整数,可选
用于‘maximum’, ‘mean’, ‘median’和‘minimum’。用于计算统计值的每个轴边的值的数量。
((before_1, after_1), ... (before_N, after_N)) 每个轴的唯一统计长度。
((before, after),) 在每个轴的统计长度之前和之后产生相同的结果。
(stat_length,) 或 int 是 before = after = 所有轴的统计长度的快捷方式。
默认为
None
,以使用整个轴。- constant_values: 序列或标量,可选
用于‘constant’。为每个轴设置填充值的值。
((before_1, after_1), ... (before_N, after_N))
每个轴的唯一焊盘常数。((before, after),)
在每个轴的常量之前和之后产生相同的结果。(constant,)
或constant
是所有轴的before = after = constant
的快捷方式。默认值为 0。
- end_values: 序列或标量,可选
用于‘linear_ramp’。用于linear_ramp 的结束值的值将形成填充数组的边。
((before_1, after_1), ... (before_N, after_N))
每个轴的唯一最终值。((before, after),)
在每个轴的结束值之前和之后产生相同的值。(constant,)
或constant
是所有轴的before = after = constant
的快捷方式。默认值为 0。
- reflect_type: {‘even’, ‘odd’},可选
用于‘reflect’ 和‘symmetric’。 ‘even’ 样式是默认样式,边值周围没有改变反射。对于‘odd’ 样式,数组的扩展部分是通过从边值的两倍中减去反射值来创建的。
- pad: ndarray
秩等于的填充数组numpy.array随着形状增加根据pad_width.
参数:
返回:
注意:
对于 rank 大于 1 的数组,后面轴的一些填充是根据前面轴的填充计算的。这是最容易想到的 rank 2 数组,其中填充数组的角是通过使用第一个轴的填充值来计算的。
填充函数(如果使用)应就地修改 rank 1 数组。它具有以下签名:
padding_func(vector, iaxis_pad_width, iaxis, kwargs)
其中
- vector ndarray
排名 1 的数组已经用零填充。填充值是向量[:iaxis_pad_width[0]] 和向量[-iaxis_pad_width[1]:]。
- iaxis_pad_width tuple
整数的 2 元组,iaxis_pad_width[0] 表示在向量开头填充的值的数量,其中 iaxis_pad_width[1] 表示在向量末尾填充的值的数量。
- iaxis int
当前正在计算的轴。
- kwargs dict
函数需要的任何关键字参数。
例子:
>>> 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]])
相关用法
- Python numpy partition用法及代码示例
- Python numpy packbits用法及代码示例
- Python numpy polyder用法及代码示例
- Python numpy polynomial.polyfit用法及代码示例
- Python numpy put_along_axis用法及代码示例
- Python numpy polyfit用法及代码示例
- Python numpy piecewise用法及代码示例
- Python numpy polynomial.polyline用法及代码示例
- Python numpy polynomial.polyadd用法及代码示例
- Python numpy polynomial.polyder用法及代码示例
- Python numpy pmt用法及代码示例
- Python numpy promote_types用法及代码示例
- Python numpy polyutils.as_series用法及代码示例
- Python numpy percentile用法及代码示例
- Python numpy polynomial.polydomain用法及代码示例
- Python numpy poly用法及代码示例
- Python numpy polynomial.polyint用法及代码示例
- Python numpy polysub用法及代码示例
- Python numpy prod用法及代码示例
- Python numpy polyutils.getdomain用法及代码示例
- Python numpy power用法及代码示例
- Python numpy polyutils.mapdomain用法及代码示例
- Python numpy putmask用法及代码示例
- Python numpy polyutils.mapparms用法及代码示例
- Python numpy polynomial.polydiv用法及代码示例
注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.pad。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。