The numpy.correlate()
method computes the cross-correlation of two 1-dimensional sequences.
Example
import numpy as np
# create two arrays
array1 = np.array([0, 1, 2, 3])
array2 = np.array([2, 0, 1, 3])
# calculate the correlation of two arrays
corr = np.correlate(array1, array2)
print(corr)
# Output: [11]
correlate() Syntax
The syntax of the numpy.correlate()
method is:
numpy.correlate(a, v, mode = 'valid')
correlate() Arguments
The numpy.correlate()
method takes the following arguments:
a
,v
- arrays whose correlation we need to compute (can bearray_like
)mode
(optional) - specifies the size of the output ('valid'
,'full'
, or'same'
)
correlate() Return Value
The numpy.correlate()
method returns the discrete cross-correlation of a
and v
.
Example 1: Find the Correlation Between Two ndArrays
While computing the correlation between two ndarrays
, the correlation can have three modes.
'valid'
(default): The output contains only valid cross-correlation values. It returns an array with lengthmax(M, N) - min(M, N) + 1
, where M and N are the lengths of the input arraysa
andv
, respectively.
'full'
: The output is the full discrete linear cross-correlation of the inputs. It returns an array with lengthM + N - 1
, where M and N are the lengths of the input arraysa
andv
, respectively.
'same'
: The output has the same size asa
, centered with respect to the'full'
output.
Let's look at an example.
import numpy as np
# create two arrays
array1 = np.array([0, 1, 2, 3])
array2 = np.array([2, 0, 1, 3])
# calculate the valid correlation of two arrays
valid_corr = np.correlate(array1, array2, mode = 'valid')
# calculate the full correlation of two arrays
full_corr = np.correlate(array1, array2, mode = 'full')
# calculate the correlation of two arrays
same_corr = np.correlate(array1, array2, mode = 'same')
print('Correlation in Valid mode :', valid_corr)
print('Correlation in Full mode :', full_corr)
print('Correlation in Same mode :', same_corr)
Output
Correlation in Valid mode : [11] Correlation in Full mode : [ 0 3 7 11 5 4 6] Correlation in Same mode : [ 3 7 11 5]
Example 2: Correlation Between Complex ndArrays
The numpy.correlate()
function can also be used to find the correlation between complex data types.
import numpy as np
# create two arrays of complex numbers
array1 = np.array([1+1j, 2, 3-1j])
array2 = np.array([2, 1-1j, 3+1j])
# calculate the correlation of the complex arrays
corr = np.correlate(array1, array2)
print(corr)
Output
[12.-2.j]