np.pad()

Posted pacino12134

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了np.pad()相关的知识,希望对你有一定的参考价值。

np.pad()常用与深度学习中的数据预处理,可以将numpy数组按指定的方法填充成指定的形状。

对一维数组的填充

 1 import numpy as np
 2 arr1D = np.array([1, 1, 2, 2, 3, 4])
 3 ‘‘‘不同的填充方法‘‘‘
 4 print constant:  + str(np.pad(arr1D, (2, 3), constant))
 5 print edge:  + str(np.pad(arr1D, (2, 3), edge))
 6 print linear_ramp:  + str(np.pad(arr1D, (2, 3), linear_ramp))
 7 print maximum:  + str(np.pad(arr1D, (2, 3), maximum))
 8 print mean:  + str(np.pad(arr1D, (2, 3), mean))
 9 print median:  + str(np.pad(arr1D, (2, 3), median))
10 print minimum:  + str(np.pad(arr1D, (2, 3), minimum))
11 print reflect:  + str(np.pad(arr1D, (2, 3), reflect))
12 print symmetric:  + str(np.pad(arr1D, (2, 3), symmetric))
13 print wrap:  + str(np.pad(arr1D, (2, 3), wrap))

结果:

技术分享图片

 

解释:

第一个参数是待填充数组

第二个参数是填充的形状,(2,3)表示前面两个,后面三个

第三个参数是填充的方法

 


填充方法:

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

对多维数组的填充

 1 import numpy as np
 2 arr3D = np.array([[[1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4]], 
 3                   [[0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5]], 
 4                   [[1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4]]])
 5                   ‘‘‘对于多维数组‘‘‘
 6 print constant:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), constant))  #第一个维度前面加0个,后面加0个,第二个维度前面1个,后面1个......
 7 print edge:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), edge))
 8 print linear_ramp:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), linear_ramp))
 9 print maximum:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), maximum))
10 print mean:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), mean))
11 print median:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), median))
12 print minimum:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), minimum))
13 print reflect:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), reflect))
14 print symmetric:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), symmetric))
15 print wrap:  
 + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), wrap))

结果:

技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片

 










以上是关于np.pad()的主要内容,如果未能解决你的问题,请参考以下文章

python向量扩充补零以及连接

python如何用零填充numpy数组

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?