numpy.pad
np.pad()常用与深度学习中的数据预处理,可以将numpy数组按指定的方法填充成指定的形状。
np.pad()
对一维数组的填充
import numpy as np arr1D = np.array([1, 1, 2, 2, 3, 4]) '''不同的填充方法''' print 'constant: ' + str(np.pad(arr1D, (2, 3), 'constant')) print 'edge: ' + str(np.pad(arr1D, (2, 3), 'edge')) print 'linear_ramp: ' + str(np.pad(arr1D, (2, 3), 'linear_ramp')) print 'maximum: ' + str(np.pad(arr1D, (2, 3), 'maximum')) print 'mean: ' + str(np.pad(arr1D, (2, 3), 'mean')) print 'median: ' + str(np.pad(arr1D, (2, 3), 'median')) print 'minimum: ' + str(np.pad(arr1D, (2, 3), 'minimum')) print 'reflect: ' + str(np.pad(arr1D, (2, 3), 'reflect')) print 'symmetric: ' + str(np.pad(arr1D, (2, 3), 'symmetric')) 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用原数组后面的值填充前面,前面的值填充后面
- 也可以有其他自定义的填充方法
对多维数组的填充
import numpy as np arr3D = np.array([[[1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4]], [[0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5]], [[1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4]]]) '''对于多维数组''' print 'constant: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'constant')) print 'edge: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'edge')) print 'linear_ramp: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'linear_ramp')) print 'maximum: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'maximum')) print 'mean: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'mean')) print 'median: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'median')) print 'minimum: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'minimum')) print 'reflect: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'reflect')) print 'symmetric: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'symmetric')) print 'wrap: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'wrap'))
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥