本文簡要介紹 python 語言中 numpy.convolve
的用法。
用法:
numpy.convolve(a, v, mode='full')
返回兩個一維序列的離散線性卷積。
卷積算子經常出現在信號處理中,它模擬線性時不變係統對信號的影響[1]。在概率論中,兩個獨立隨機變量的總和根據其各自分布的卷積進行分布。
如果 v 比 a 長,則在計算之前交換數組。
- a: (N,) 數組
第一個一維輸入數組。
- v: (M,) 數組
第二個一維輸入數組。
- mode: {‘full’, ‘valid’, ‘same’},可選
- ‘full’:
默認情況下,模式為‘full’。這將返回每個重疊點的卷積,輸出形狀為 (N+M-1,)。在卷積的端點,信號不完全重疊,並且可能會看到邊界效應。
- ‘same’:
模式 ‘same’ 返回長度為
max(M, N)
的輸出。邊界效應仍然可見。- ‘valid’:
模式 ‘valid’ 返回長度為
max(M, N) - min(M, N) + 1
的輸出。卷積乘積僅適用於信號完全重疊的點。信號邊界之外的值沒有影響。
- out: ndarray
a 和 v 的離散線性卷積。
參數:
返回:
注意:
離散卷積操作定義為
可以看出,在適當的填充之後(填充對於防止循環卷積是必要的),時間/空間中的卷積
scipy.signal.fftconvolve
利用 FFT 來計算大型數據集的卷積。 相當於傅立葉域中的乘法 。由於乘法比卷積更有效(更快),因此函數參考:
維基百科,“Convolution”,https://en.wikipedia.org/wiki/Convolution
1:
例子:
請注意卷積運算符如何將 “sliding” 之前的第二個數組翻轉過來:
>>> np.convolve([1, 2, 3], [0, 1, 0.5]) array([0. , 1. , 2.5, 4. , 1.5])
隻返回卷積的中間值。包含邊界效應,其中考慮了零:
>>> np.convolve([1,2,3],[0,1,0.5], 'same') array([1. , 2.5, 4. ])
這兩個數組的長度相同,因此它們完全重疊的位置隻有一個:
>>> np.convolve([1,2,3],[0,1,0.5], 'valid') array([2.5])
相關用法
- Python numpy conjugate用法及代碼示例
- Python numpy concatenate用法及代碼示例
- Python numpy conj用法及代碼示例
- Python numpy copy用法及代碼示例
- Python numpy copysign用法及代碼示例
- Python numpy count_nonzero用法及代碼示例
- Python numpy correlate用法及代碼示例
- Python numpy cosh用法及代碼示例
- Python numpy cos用法及代碼示例
- Python numpy cov用法及代碼示例
- Python numpy corrcoef用法及代碼示例
- Python numpy column_stack用法及代碼示例
- Python numpy compress用法及代碼示例
- Python numpy common_type用法及代碼示例
- Python numpy chararray.ndim用法及代碼示例
- Python numpy chebyshev.chebsub用法及代碼示例
- Python numpy chararray.nbytes用法及代碼示例
- Python numpy chebyshev.chebdiv用法及代碼示例
- Python numpy chararray.setflags用法及代碼示例
- Python numpy chararray.flat用法及代碼示例
- Python numpy can_cast用法及代碼示例
- Python numpy chararray.strides用法及代碼示例
- Python numpy chebyshev.cheb2poly用法及代碼示例
- Python numpy chararray.view用法及代碼示例
- Python numpy chebyshev.chebx用法及代碼示例
注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.convolve。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。