numpy 1.22.4 Pypi GitHub Homepage
Other Docs
NotesParametersReturnsBackRef
convolve(a, v, mode='full')

The convolution operator is often seen in signal processing, where it models the effect of a linear time-invariant system on a signal . 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.

Notes

The discrete convolution operation is defined as

$$(a * v)[n] = \sum_{m = -\infty}^{\infty} a[m] v[n - m]$$

It can be shown that a convolution $x(t) * y(t)$ in time/space is equivalent to the multiplication $X(f) Y(f)$ 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.

Parameters

a : (N,) array_like

First one-dimensional input array.

v : (M,) array_like

Second 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 : ndarray

Discrete, linear convolution of a and v.

Returns the discrete, linear convolution of two one-dimensional sequences.

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.

Examples

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])
See :

Back References

The following pages refer to to this document either explicitly or contain code examples using this.

numpy.ma.core.correlate numpy.correlate numpy.polymul scipy.linalg._special_matrices.convolution_matrix numpy.ma.core.convolve

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


GitHub : /numpy/core/numeric.py#748
type: <class 'function'>
Commit: