1. 程式人生 > >numpy中的convolve的理解

numpy中的convolve的理解

sdn ray valid log 文章 copy py函數 五個 ali

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的理解