Numpy.pad的多维矩阵里的参数通俗解析 np.pad(a, ((x1, y1), (x2, y2), (x3, y3)), 'constant')

最近看到pad函数,很多参考资料对pad函数在三维矩阵应用时,对于里面的参数解释不明白,于是自己总结一下
···

a = np.array([[[1, 2],
               [2, 3]],
              [[2, 4],
               [5, 6]],
              [[7, 8],
               [9, 10]]])

···
定义这么个三维矩阵,使用pad方法,
···

np.pad(a, ((x1, y1), (x2, y2), (x3, y3)), 'constant')

···
首先解释 (a, ((x1, y1), (x2, y2), (x3, y3)), ‘constant’) 中的a自然代表的想要填充的矩阵,‘constant’,代表各个矩阵填充一样的元素
重点解释 (x1, y1), (x2, y2), (x3, y3)

(x1,y1) 解释:
(x1,y1)代表着在a这个三维矩阵中,整个大矩阵中首尾分别添加x1,y1个和a中各个矩阵形状一样的0矩阵 (为什么是0,因为如果不注明,默认填充是0),即在矩阵组a中,在开头添加x1个[[0,0],[0,0]]矩阵,后面添加y1个[[0,0],[0,0]]矩阵,比如,运行下面的程序

 np.pad(a, ((1, 1), (0, 0), (0, 0)), 'constant'))

打印结果
···

	[[[ 0  0]
	 [ 0  0]],
	 [[ 1  2]
	 [ 2  3]],
	 [[ 2  4]
	 [ 5  6]],
	 [[ 7  8]
	 [ 9 10]],
	 [[ 0  0]
	 [ 0  0]]]

···
如图所示,在在矩阵组中,开头增加了1(x1)个0矩阵,末尾填了1(y1)个0矩阵

(x2,y2) 解释:
(x2,y2)代表这向各个矩阵组上边填充x2行0元素,下边填充y2行0元素, (为什么是0,因为如果不注明,默认填充是0)

 	np.pad(a, ((0, 0), (1, 2), (0, 0)), 'constant'))

···

 	[[[ 0  0]
  	[ 1  2]
  	[ 2  3]
  	[ 0  0]
  	[ 0  0]],
 	[[ 0  0]
  	[ 2  4]
  	[ 5  6]
  	[ 0  0]
  	[ 0  0]],
 	[[ 0  0]
  	[ 7  8]
  	[ 9 10]
  	[ 0  0]
  	[ 0  0]]]

···
如图所示,各个矩阵上面填充了1行(x2)0元素,下面填了2行(y2)0元素

(x3,y3) 解释:
(x3,y3)代表这向各个矩阵组右边填充x3列0元素,左边填充y3列0元素, (为什么是0,因为如果不注明,默认填充是0)

np.pad(a, ((0, 0), (0, 0), (2, 3)), 'constant')

···

[[[ 0  0  1  2  0  0  0]
  [ 0  0  2  3  0  0  0]],

 [[ 0  0  2  4  0  0  0]
  [ 0  0  5  6  0  0  0]],

 [[ 0  0  7  8  0  0  0]
  [ 0  0  9 10  0  0  0]]]

···
如图所示,各个矩阵右面填充了2列(x3)0元素,左面填了3列(y3)0元素

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值