Python的numpy模块提供了一个名为numpy.pad()的函数来在数组中执行填充。此功能具有几个必需和可选参数。
numpy.pad(array, pad_width, mode='constant', **kwargs)
这是我们要填充的源数组。
此参数定义填充到每个轴边缘的值的数量。每个轴的唯一焊盘宽度定义为(before_1,after_1),(before_2,after_2),...(before_N,after_N))。对于每个轴,(before,after)将与pad之前和之后相同。对于所有轴,int或(pad)都是before = after = pad宽度的快捷方式。
此参数具有以下字符串值之一:
"constant"(默认)
如果我们为模式参数分配一个常量值,则将使用一个常量值进行填充。
'edge'
它是数组的边缘值。填充将使用此边缘值进行。
"linear_ramp"
该值用于执行边缘值和最终值之间的线性渐变填充。
"maximum"
此参数值使用沿每个轴的矢量部分或全部的最大值执行填充。
"mean"
该参数值通过沿每个轴的矢量部分或全部的平均值执行填充。
"median"
此参数值通过沿每个轴的矢量部分或全部的中值执行填充。
"minimum"
该参数值通过沿每个轴的矢量部分或全部的最小值来执行填充。
"reflect"
该值通过矢量反射填充阵列,该矢量反射沿每个轴镜像在起始和终止矢量值上。
"symmetric"
该值用于通过矢量反射填充阵列,该矢量反射沿阵列的边缘镜像。
"wrap"
该值用于通过向量沿轴的环绕来执行数组的填充。起始值用于填充结尾,而终止值则填充开头。
"empty"
此值用于用未定义的值填充数组。
此参数用于"maximum","mininmum","mean","median"。它定义了每个边缘轴上的值数,用于计算静态值。
此参数在"constant"中使用。它定义用于为每个轴设置填充值的值。
此参数在'linear_ramp'中使用。它定义了用于linear_ramp的最后一个值的值,并将形成填充数组的边缘。
链接:https://www.learnfk.comhttps://www.learnfk.com/numpy/numpy-pad.html
来源:LearnFk无涯教程网
此参数用于"symmetric"和"reflect"。默认情况下,reflect_type为"even",边缘值周围的反射不变。通过从边缘值的两倍减去反射值,就为"odd"样式创建了数组的扩展部分。
pad:ndarray
此函数返回与数组相等的秩的填充数组,其形状根据pad_width增加。
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y
输出:
array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4])
在上面的代码中
在输出中,它显示了用定义的大小和值填充的ndarray。
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y
输出:
array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4])
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y
输出:
array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5])
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y
输出:
array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5])
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y
输出:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y
输出:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y
输出:
array([[1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [3, 3, 3, 3, 4, 3, 3], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1]])
import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) y = np.pad(x, 3, pad_with) y
输出:
array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31])
在上面的代码中
在输出中,它显示了用定义的大小和值填充的ndarray。
import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with)
输出:
array([[10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 0, 1, 10, 10, 10], [10, 10, 10, 2, 3, 10, 10, 10], [10, 10, 10, 4, 5, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10]])
import numpy as np import numpy as np 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 x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with, padder=100)
输出:
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], [100, 100, 100, 0, 1, 100, 100, 100], [100, 100, 100, 2, 3, 100, 100, 100], [100, 100, 100, 4, 5, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100]])
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)