What is scipy.signal.correlate() in Python?

SciPy is an advanced open-source Python library for scientific computing. It is based on NumPy and offers a large range of functions and tools for a variety of scientific and technical tasks.

Signal processing is the study of studying, altering, and interpreting signals, which are representations of information that change over time.

The scipy.signal.correlate() function

Correlation is a measure of the similarity of two signals as one is moved relative to the other.

The scipy.signal module is specially built to solve signal processing problems. The scipy.signal.correlate() method is used to compute the correlation between two 1-dimensional sequences.

Syntax

You can find the syntax for this function below:

scipy.signal.correlate(in1, in2, mode='full', method='auto')
Syntax of scipy.signal.correlate() method
  • in1 and in2 are the required parameters that represent the input arrays as two 1-dimensional sequences.

  • mode is an optional parameter that specifies the size of the output. It takes the values 'full', 'valid', or 'same'.

  • method is an optional parameter that represents the method used for the correlation calculation. It can take values 'auto', 'fft', or 'direct'.

Note: Make sure you have the SciPy library installed. To learn more about the SciPy installation on your system, click here.

Code

Let's walk through an example that implements the function scipy.signal.correlate() in code:

import numpy as np
from scipy.signal import correlate
#Defining two 1-dimensional sequences
sequence1 = np.array([1, 2, 3, 4, 5])
sequence2 = np.array([0, 1, 0.5])
#Calculating the correlation
result = correlate(sequence1, sequence2)
#Printing the result
print("Correlation Result:", result)
Example for scipy.signal.correlate() function

Code explanation

  • Line 1–2: Firstly, we import the necessary modules. The numpy module for numerical operations and scipy.signal.correlate from SciPy for calculating the correlation.

  • Line 5–6: Next, we define two 1-dimensional sequences sequence1 and sequence2.

  • Line 9: Then, we use the scipy.signal.correlate() function to calculate the correlation between the two sequences and store the result in the variable result.

  • Line 12: Finally, we print the calculated correlation on the console.

Output

Upon execution, the code will use the scipy.signal.correlate() function and calculate the correlation between the two input sequences.

The output of the above code looks like this:

Correlation Result: [0.5 2. 3.5 5. 6.5 5. 0. ]

The elements in the output array show how similar the two sequences are as one is moved relative to the other.

Note: The highest value in the output indicates the highest similarity, i.e., the point where the two sequences match most closely.

Conclusion

Hence, the scipy.signal.correlate() method is useful for determining the correlation between two 1-dimensional sequences. It is commonly used in signal processing and time-series analysis to assess the similarity of signals as they move relative to one another.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved