NumPy 函数

NumPy pad() 函数用于填充数组。该函数包含一个可选参数mode,可用于指定字符串值(预定义的填充样式)或用户提供的填充函数。

语法

numpy.pad(array, pad_width, mode='constant') 

参数

array必填。 指定要填充的数组(等级为 N 的 array_like)。
pad_width必填。 指定 .它指定填充到每个轴边缘的值的数量。 ((before_1, after_1), … (before_N, after_N)) 每个轴的唯一焊盘宽度。 ((之前、之后)、) 在每个轴的 pad 之前和之后产生相同的结果。 (pad,) 或 int 是 before = after = 所有轴的 pad 宽度的快捷方式。
mode可选。 指定以下字符串值之一或用户提供的函数:
  • 'constant':(默认)具有常量值的 Pad。
  • 'edge':使用数组边缘值进行填充。
  • 'linear_ramp':使用 end_value 和数组边缘值之间的线性斜坡进行填充。
  • 'maximum':沿每个轴具有全部或部分向量最大值的焊盘。
  • 'mean':沿每个轴填充全部或部分向量的平均值。
  • 'median':沿每个轴填充全部或部分向量的中值
  • 'minimum':沿每个轴填充全部或部分向量的最小值。
  • 'reflect':具有矢量反射的焊盘沿每个轴镜像到矢量的第一个和最后一个值。
  • 'symmetric':具有矢量反射的焊盘沿数组的边缘镜像。
  • 'wrap':沿轴矢量环绕的焊盘。第一个值用于填充末尾,结束值用于填充开头。
  • 'empty':填充未定义的值。
  • <function>:填充函数。

返回值

返回等级等于array的填充数组,形状根据pad_width增加。

示例:

下面的示例显示了pad() 函数的用法。

import numpy as np

x = [10, 20]

#填充常量值
print("填充常量值:")
print(np.pad(x, (2,3), 'constant', constant_values=(5, 25)))

#填充边缘值
print("\n填充边缘值:")
print(np.pad(x, (2,3), 'edge'))

#填充最大值
print("\n填充最大值:")
print(np.pad(x, (2,3), 'maximum'))

#padding 最小值
print("\n填充最小值:")
print(np.pad(x, (2,3), 'minimum'))

#填充平均值
print("\n填充平均值:")
print(np.pad(x, (2,3), 'mean'))

#填充带有 Linear_ramp 值
print("\n使用 Linear_ramp 值填充:")
print(np.pad(x, (2,3), 'linear_ramp', end_values=(0, 0))) 

上述代码的输出将是:

填充常量值:
[ 5  5 10 20 25 25 25]

填充边缘值:
[10 10 10 20 20 20 20]

填充最大值:
[20 20 10 20 20 20 20]

填充最小值:
[10 10 10 20 10 10 10]

填充平均值:
[15 15 10 20 15 15 15]

使用 Linear_ramp 值填充:
[ 0  5 10 20 13  6  0] 

示例:

让我们再考虑一个用常量值填充二维数组的示例。

import numpy as np

x = [[10, 20],
     [30, 40]]

#用 1 填充该数组
print("填充常量值:")
print(np.pad(x, ((2,3),(1,2)), 'constant', 
      constant_values=((1, 2),(3, 4)))) 

上述代码的输出将是:

填充常量值:
[[ 3  1  1  4  4]
 [ 3  1  1  4  4]
 [ 3 10 20  4  4]
 [ 3 30 40  4  4]
 [ 3  2  2  4  4]
 [ 3  2  2  4  4]
 [ 3  2  2  4  4]]