本文简要介绍 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。