日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

np.pad()详解

發布時間:2023/12/15 综合教程 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 np.pad()详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

np.pad()用來在numpy數組的邊緣進行數值填充,例如CNN網絡常用的padding操作

1.語法結構

np.pad(array,pad_width,mode,**kwargs)  # 返回填充后的numpy數組

array:要填充的numpy數組【要對誰進行填充】

pad_width:每個軸要填充的數據的數目【每個維度前、后各要填充多少個數據】

mode:填充的方式【采用哪種方式填充】

備注:如何理解軸的概念?

軸是指行/列的堆疊方向

2. 參數pad_width解析

pad_width參數類型:sequence,array_like,int

pad_width參數格式:((before_1, after_1), (before_2, after_2), ... , (before_N, after_N))

第一個元素(before_1, after_1)表示第一維【列】的填充方式:前面填充before_1個數值,后面填充after_1個數值

第2個元素(before_2, after_2)表示第二維【行】的填充方式:前面填充before_2個數值,后面填充after_2個數值

... ...

備注:

(1)一維數組的rank = 1,所以對一維數組填充時,其pad_width參數只能是一個元組(before_1, after_1),當然也可以是一個int類型,表示前后填充的數值個數相同,例如

a = np.array([1, 2, 3, 4, 5])

b = np.pad(a, 2, 'constant')  # 正確寫法

c = np.pad(a, (2, 4), 'constant')  # 正確寫法

d = np.pad(a, ((2, 4), (3, 5)), 'constant')  # 錯誤寫法,因為a是一維數組,而(3, 5)表示在第二個維度進行填充

(2)二維數組的rank = 2,因此對二維數組填充時,其pad_width參數可以是兩個并列的元組((before_1, after_1), (before_2, after_2)),但要注意將其合并為一個整體(即外加括號變成一個大元組)一起進行傳參,

當然也可以是一個元組(before, after),表示兩個維度都按照此方式填充;

當然也可以是一個int類型,表示兩個維度前后填充的個數都相同;

例如

aa = np.arange(6).reshape(2, 3)

bb = np.pad(aa, 2, 'constant')  # 正確寫法

cc = np.pad(aa, (2, 4), 'constant')  # 正確寫法

dd = np.pad(aa, ((2, 4), (3, 5)), 'constant')  # 正確寫法

ee = np.pad(aa, (2, 4), (3, 5), 'constant')  # 錯誤寫法,必須將兩個元組合成一個大元組傳參

3.參數mode解析

mode參數類型:str(10種取值)、function

str類型取值包括:

‘constant’——表示連續填充相同的值,每個軸可以分別指定填充值,constant_values=(x, y)時前面用x填充,后面用y填充,缺省值填充0
‘edge’——表示用邊緣值填充
‘linear_ramp’——表示用邊緣遞減的方式填充
‘maximum’——表示最大值填充
‘mean’——表示均值填充
‘median’——表示中位數填充
‘minimum’——表示最小值填充
‘reflect’——表示對稱填充
‘symmetric’——表示對稱填充
‘wrap’——表示用原數組后面的值填充前面,前面的值填充后面

4.參數kwargs解析

字典類型,key包括:

stat_length:sequence、int、optional,用在"maximum", "mean", "median", "minimum"中,默認值是 None

constant_values:sequence、int、optional,用在"constant"中,默認值是 0

end_values:sequence、int、optional,用在"linear_ramp"中,默認值是 0

reflect_type:{'even', 'old'},用在"reflect","symmetric"中

5.代碼測試

 1 import numpy as np
 2 
 3 # 測試一維數組
 4 a = np.array([1, 2, 3, 4, 5])
 5 
 6 b = np.pad(a, 2, 'constant')
 7 print("b = ", b)
 8 
 9 c = np.pad(a, (2, 4), 'constant')
10 print("c = ", c)
11 
12 
13 # 測試二維數組
14 aa = np.arange(6).reshape(2, 3)
15 print("aa = 
", aa)
16 
17 bb = np.pad(aa, (2, 4), 'constant')
18 print("bb = 
", bb)
19 
20 cc = np.pad(aa, ((2, 4), (3, 5)), 'constant')
21 print("cc = 
", cc)
22 
23 
24 # 測試三維數組
25 aaa = np.arange(24).reshape(2, 3, 4)
26 print("aaa = 
", aaa)
27 
28 np.set_printoptions(threshold=np.inf) # 將numpy數組完全展開
29 bbb = np.pad(aaa, ((2, 3), (4, 5), (6, 7)), 'constant')# 塊上加了2/3,列上加了4/5,行上加了6/7
30 print("bbb = 
", bbb)

運行結果如下:

b =  [0 0 1 2 3 4 5 0 0]
c =  [0 0 1 2 3 4 5 0 0 0 0]
aa = 
 [[0 1 2]
 [3 4 5]]
bb = 
 [[0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0]
 [0 0 0 1 2 0 0 0 0]
 [0 0 3 4 5 0 0 0 0]
 [0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0]]
cc = 
 [[0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 1 2 0 0 0 0 0]
 [0 0 0 3 4 5 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0 0]]
aaa = 
 [[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
bbb = 
 [[[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]]

 [[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]]

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

 [[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0 12 13 14 15  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0 16 17 18 19  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0 20 21 22 23  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]]

 [[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]]

 [[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]]

 [[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]]]

轉載請注明博客出處:https://www.cnblogs.com/shuaishuaidefeizhu/p/14179038.html

總結

以上是生活随笔為你收集整理的np.pad()详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。