圖文並茂的Python教程-numpy.pad


圖文並茂的Python教程-numpy.pad

 

np.pad()常用與深度學習中的數據預處理,可以將numpy數組按指定的方法填充成指定的形狀。
聲明:

需要讀者了解一點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'))

這里寫圖片描述這里寫圖片描述這里寫圖片描述這里寫圖片描述這里寫圖片描述這里寫圖片描述這里寫圖片描述這里寫圖片描述這里寫圖片描述這里寫圖片描述

---------------------
作者:hustqb
來源:CSDN
原文:https://blog.csdn.net/hustqb/article/details/77726660
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM