在NumPy中给数组添加边框可以使用np.pad函数。该函数接受两个参数,第一个参数是需要填充的数组,第二个参数是指定填充方式等参数的元组。
以下是该函数的基本语法:
np.pad(array, pad_width, mode='constant', **kwargs)
array
:要填充的数组。pad_config
:用包含长度为数组维度数量的元组来指定填充宽度。如( (top, bottom), (left, right) ),添加不同数量的行和列时使用。例如,要向所有边缘添加1个单位,则使用(1,1)
,如果要向上部分添加1个单位,向下部分添加2个单位,向左部分添加3个单位,向右部分添加4个单位,则使用((1,2), (3,4))
。mode
:用于指定填充方式,默认为“constant”。
除了指定参数来创建边框外,还可以使用字符串值来指定填充方式。支持的字符串参数定义如下所述:
– ‘constant’:用给定的常数fill_value(默认为0)填充边框。
– ‘edge’:用数组的边缘值填充边框。
– ‘linear_ramp’:用在两个端点之间线性变化的值填充边框。
– ‘maximum’:用剩余的最大值填充边框。
– ‘mean’:用剩余的平均值填充边框。
– ‘median’:用剩余的中位数填充边框。
– ‘minimum’:用剩余的最小值填充边框。
– ‘reflect’:对数组的边缘进行反射,然后将其填充。
– ‘symmetric’:以数组的中心为对称轴对数组的边缘进行反射,然后将其填充。
以下是添加边框的两个示例:
示例1:向NumPy数组添加单位边框
import numpy as np
# 创建一个3x3的数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 向数组添加单位边框
array_with_border = np.pad(array, pad_width=1, mode='constant')
# 输出添加边框后的数组
print(array_with_border)
# 输出:
# [[0 0 0 0 0]
# [0 1 2 3 0]
# [0 4 5 6 0]
# [0 7 8 9 0]
# [0 0 0 0 0]]
示例2:向NumPy数组添加非单位边框
import numpy as np
# 创建一个3x3的数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 向数组添加宽度为3 的非单位边框
array_with_border = np.pad(array, pad_width=((1, 2), (3, 4)), mode='constant')
# 输出添加边框后的数组
print(array_with_border)
# 输出:
# [[0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 1 2 3 0 0 0]
# [0 0 0 0 4 5 6 0 0 0]
# [0 0 0 0 7 8 9 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]]
在示例1中,我们向一个3 x 3的数组添加了一个单位边框。在示例2中,我们向同样的数组添加了非单位边框,其中左侧和右侧添加了3个单位的宽度,“上”添加了1个单位的宽度,而“下”则添加了2个单位的宽度。