numpy.convolve()
卷积函数:
numpy.convolve(a, v, mode='full')
Parameters: |
a : (N,) array_like
v : (M,) array_like
mode : {‘full’, ‘valid’, ‘same’}, optional
|
---|
Returns: |
out : ndarray
|
---|
The discrete convolution operation is defined as
It can be shown that a convolution in time/space is equivalent to the multiplication in the Fourier domain, after appropriate padding (padding is necessary to prevent circular convolution). Since multiplication is more efficient (faster) than convolution, the function scipy.signal.fftconvolveexploits the FFT to calculate the convolution of large data-sets.
Note how the convolution operator flips the second array before “sliding” the two across one another:
>>> np.convolve([1, 2, 3], [0, 1, 0.5])
array([ 0. , 1. , 2.5, 4. , 1.5])
Only return the middle values of the convolution. Contains boundary effects, where zeros are taken into account:
>>> np.convolve([1,2,3],[0,1,0.5], 'same')
array([ 1. , 2.5, 4. ])
The two arrays are of the same length, so there is only one position where they completely overlap:
>>> np.convolve([1,2,3],[0,1,0.5], 'valid')
array([ 2.5])