numpy中的convolve的理解
https://blog.csdn.net/u011599639/article/details/76254442
函數
numpy.convolve(a, v, mode=‘full’),這是numpy函數中的卷積函數庫
參數:
a:(N,)輸入的一維數組
b:(M,)輸入的第二個一維數組
mode:{‘full’, ‘valid’, ‘same’}參數可選
‘full’ 默認值,返回每一個卷積值,長度是N+M-1,在卷積的邊緣處,信號不重疊,存在邊際效應。
‘same’ 返回的數組長度為max(M, N),邊際效應依舊存在。
‘valid’ 返回的數組長度為max(M,N)-min(M,N)+1,此時返回的是完全重疊的點。邊緣的點無效。
直觀理解
數字輸入的是離散信號,如下圖。
已知x[0] = a,x[1]=b,x[2]=c
這裏寫圖片描述
已知y[0]=i,y[1]=j,y[2]=k
這裏寫圖片描述
下面演示x[n]*y[n]過程
第一步,x[n]乘以y[0]並平移到位置0:
這裏寫圖片描述
第二步,x[n]乘以y[1]並平移到位置1:
這裏寫圖片描述
第三步,x[n]乘以y[2]並平移到位置2:
這裏寫圖片描述
最後,把上面三個圖疊加,就得到了x[n] * y[n]:
這裏寫圖片描述
公式及代碼
公式:
代碼:
由上面的公式可以直接得到下面的數組
>>> np.convolve([1, 2, 3], [0, 1, 0.5])
array([ 0. , 1. , 2.5, 4. , 1.5])
1
2
數組中的5個點分別最後一張圖片中的五個值
>>> np.convolve([1,2,3],[0,1,0.5], ‘same‘)
array([ 1. , 2.5, 4. ])
1
2
三個值分別對應圖片中的(1、2、3)三個下標的值
>>> np.convolve([1,2,3],[0,1,0.5], ‘valid‘)
array([ 2.5])
1
2
對應圖片坐標為2的值
---------------------
作者:QLMX
來源:CSDN
原文:https://blog.csdn.net/u011599639/article/details/76254442?utm_source=copy
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
numpy中的convolve的理解