numpy np.pad介绍

numpy.pad 是 NumPy 中用于对数组进行边界填充(padding)的函数。可以通过它对数组的各个维度进行填充操作,在数组的边缘添加额外的元素。np.pad 提供了多种不同的填充方式,例如用常数填充、镜像填充、边界填充等。

基本用法

numpy.pad(array, pad_width, mode='constant', **kwargs)
参数说明
  • array: 需要填充的数组。
  • pad_width: 表示在每个维度上的填充宽度。可以是单个整数,表示所有维度都填充相同的宽度,也可以是不同维度分别指定的宽度(如 ((before_1, after_1), (before_2, after_2)))。
  • mode: 填充方式,常用模式包括:
    • 'constant':常数填充(默认模式),可以通过 constant_values 指定填充值。
    • 'edge':用边界值填充。
    • 'reflect':反射填充,不包含边界。
    • 'symmetric':对称填充,包含边界。
    • 'wrap':循环填充。
    • 'linear_ramp':线性填充,填充的值按照线性递减或递增。
    • 'maximum''minimum':用最大值或最小值填充。
    • 'mean''median':用均值或中值填充。
  • constant_values: 在 mode='constant' 时,指定填充值。可以为单一常数或每个维度不同的常数值。

常见模式示例

假设有一个二维数组 arr

import numpy as np

arr = np.array([[1, 2], [3, 4]])
1. constant 模式(常数填充)
padded_arr = np.pad(arr, pad_width=1, mode='constant', constant_values=0)
print(padded_arr)

这里 pad_width=1 表示在每一维度的两端都填充 1 行/列的 0。

2. edge 模式(边界填充)
padded_arr = np.pad(arr, pad_width=1, mode='edge')
print(padded_arr)

这里 pad_width=1,使用数组的边界值进行填充。

3. reflect 模式(反射填充)
padded_arr = np.pad(arr, pad_width=1, mode='reflect')
print(padded_arr)

使用数组的反射值进行填充,不包含边界值。

4. symmetric 模式(对称填充)
padded_arr = np.pad(arr, pad_width=1, mode='symmetric')
print(padded_arr)

这里填充是对称的,包含边界值。

5. wrap 模式(循环填充)
padded_arr = np.pad(arr, pad_width=1, mode='wrap')
print(padded_arr)
  • 数组像一个圆环一样循环填充。
6. 指定不同维度的填充宽度

可以为每个维度指定不同的填充宽度,例如:

padded_arr = np.pad(arr, pad_width=((1, 2), (2, 3)), mode='constant', constant_values=9)
print(padded_arr)

这里在第一个维度上填充 1 行在前面,2 行在后面;第二个维度上填充 2 列在前面,3 列在后面。

总结

  • np.pad 用于在数组的各个维度上进行填充,可以指定多种不同的填充模式。
  • 可以使用 pad_width 控制每个维度的填充宽度,mode 参数控制填充的方式,constant_values 可以控制填充的具体值(仅在 mode='constant' 时有效)。
  • 使用 np.pad 可以方便地对多维数组进行灵活的填充操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值