bundles / numpy 2.5.0.dev0+git20251130.2de293a / numpy / convolve
_ArrayFunctionDispatcher
numpy:convolve
source: /dev/numpy/build-install/usr/lib/python3.14/site-packages/numpy/_core/numeric.py :805
Signature
def convolve ( a , v , mode = full ) Summary
Returns the discrete, linear convolution of two one-dimensional sequences.
Extended Summary
The convolution operator is often seen in signal processing, where it models the effect of a linear time-invariant system on a signal [1]. In probability theory, the sum of two independent random variables is distributed according to the convolution of their individual distributions.
If v is longer than a, the arrays are swapped before computation.
Parameters
a: (N,) array_likeFirst one-dimensional input array.
v: (M,) array_likeSecond one-dimensional input array.
mode: {'full', 'valid', 'same'}, optional'full':
By default, mode is 'full'. This returns the convolution at each point of overlap, with an output shape of (N+M-1,). At the end-points of the convolution, the signals do not overlap completely, and boundary effects may be seen.
'same':
Mode 'same' returns output of length
max(M, N). Boundary effects are still visible.'valid':
Mode 'valid' returns output of length
max(M, N) - min(M, N) + 1. The convolution product is only given for points where the signals overlap completely. Values outside the signal boundary have no effect.
Returns
out: ndarrayDiscrete, linear convolution of
aandv.
Notes
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.fftconvolve exploits the FFT to calculate the convolution of large data-sets.
Examples
Note how the convolution operator flips the second array before "sliding" the two across one another:import numpy as np np.convolve([1, 2, 3], [0, 1, 0.5])✓
np.convolve([1,2,3],[0,1,0.5], 'same')
✗np.convolve([1,2,3],[0,1,0.5], 'valid')
✓See also
- polymul
Polynomial multiplication. Same output as convolve, but also accepts poly1d objects as input.
- scipy.linalg.toeplitz
Used to construct the convolution operator.
- scipy.signal.fftconvolve
Convolve two arrays using the Fast Fourier Transform.
Aliases
-
numpy.convolve