Numpy pad() 函数
Numpy pad() 函数用于沿数组边缘填充值。填充通常通过在数组边缘添加值(例如零或常量)来增加数组的大小。该函数可以灵活地指定填充宽度、填充模式和自定义值。
可以通过将 mode 参数设置为 constant、edge、symmetric、reflect 等选项,以多种方式应用填充,具体取决于所需的行为。
语法
以下是 Numpy pad() 函数的语法 -
numpy.pad(array, pad_width, mode='constant', **kwargs)
参数
以下是 Numpy pad() 函数的参数 -
- array - 需要填充的输入数组。
- pad_width - 填充到每个轴边缘的值的数量。可以是整数、元组或元组序列。
- mode(可选) - 指定填充方法。默认值为constant。可用模式包括 constant、edge、linear_ramp、reflect、symmetric 等。
- kwargs(可选) - 根据填充模式添加的关键字参数,例如 constant_values 用于常量填充。
返回值
此函数返回一个填充后的数组,其形状与指定的填充值相同或有所修改。
示例
以下是使用 Numpy pad() 函数填充 Numpy 数组的基本示例 -
import numpy as np array = np.array([1, 2, 3]) padded_array = np.pad(array, pad_width=2, mode='constant') print("填充数组:", padded_array)
输出
以下是上述代码的输出 -
填充数组:[0 0 1 2 3 0 0]
示例:使用不同模式填充
使用 numpy.pad(),我们可以用不同的模式填充数组,例如 边缘、反射 或 对称。在以下示例中,我们使用 edge 模式填充了一个数组,该模式在边上重复 -
import numpy as np array = np.array([1, 2, 3]) print("原始数组:",array) padded_array = np.pad(array, pad_width=2, mode='edge') print("边填充后的数组:", padded_array)
输出
以下是上述代码的输出 -
原始数组:[1 2 3] 边填充后的数组:[1 1 1 2 3 3 3]
示例:填充多维数组
numpy.pad() 函数也可以沿指定轴以不同的填充宽度填充多维数组。此处,二维数组的填充方式如下:
- (1, 1):指定行的填充方式,在原始数组上方和下方分别添加 1 行,并用 0 填充。
- (2,2):指定列的填充,在原始数组的左侧添加 2 列,在右侧添加 2 列,同样用 0 填充。
import numpy as np array = np.array([[1, 2], [3, 4]]) padded_array = np.pad(array, pad_width=((1, 1), (2, 2)), mode='constant', Constant_values=0) print("二维填充数组: ", padded_array)
输出
以下是上述代码的输出 -
二维填充数组: [[0 0 0 0 0 0] [0 0 1 2 0 0] [0 0 3 4 0 0] [0 0 0 0 0 0]]
示例:使用常量值自定义填充
使用 numpy.pad(),我们可以通过 Constant_values 参数在 常量 模式下自定义填充值。这里,一个一维数组的两边都填充了常量值 9,重复 3 次 -
import numpy as np array = np.array([5, 6, 7]) padded_array = np.pad(array, pad_width=3, mode='constant', Constant_values=9) print("常量填充数组:", padded_array)
输出
以下是上述代码的输出 -
常量填充数组:[9 9 5 6 7 9 9]