numpy中pad方法及应用

1 np.pad()介绍

  • 用法:将张量按照维度,以一定规则进行填充(通常是填边上)。
    例如:
a = np.array([[1,2,3,4],[4,3,2,1]])
print(a)

b = np.pad(a, ((1,2),(3,3)))
print(b)

#输出:
[[1 2 3 4]
 [4 3 2 1]]
[[0 0 0 0 0 0 0 0 0 0]
 [0 0 0 1 2 3 4 0 0 0]
 [0 0 0 4 3 2 1 0 0 0]
 [0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0]]
  • 参数:

第一个参数是待填充数组
第二个参数是填充的形状,(2,3)表示前面两个,后面三个;((0,0)(0,3)(0,0))表示第一维不填充,第二维末尾填充三个,第三维不填充
第三个参数是填充的方法

  • 填充方法:

constant连续一样的值填充,有关于其填充值的参数。 constant_values=(x, y)时前面用x填充,后面用y填充。缺参数是为0000。。。
edge用边缘值填充
linear_ramp边缘递减的填充方式
maximum, mean, median, minimum分别用最大值、均值、中位数和最小值填充
reflect, symmetric都是对称填充。前一个是关于边缘对称,后一个是关于边缘外的空气对称╮(╯▽╰)╭
wrap用原数组后面的值填充前面,前面的值填充后面

具体参考:图文并茂的Python教程-numpy.pad

2 应用:通常用于把张量某一维度补到定长(补0用的比较多)

例子:把大小为(2,2,3,2)的4维张量补成(2,2,10,2)多余的地方补0

import numpy as np
max_len = 10                                 # 最大长度为10
x = np.arange(24).reshape((2,2,3,2))
shape = x.shape                              #((2,2,3,2))
padded = max_len - shape[-2]                 #要填充的大小:7
    
padded_shape = ((0, 0),)*len(shape[:-2]) + ((0, padded), (0, 0))
                                             #((0,0),(0,0),(0,padded),(0,0))
x = np.pad(x, padded_shape,mode="constant")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值