xxxxxxxxxx
# Python convolution calculation, fast algorithm
import numpy as np
import scipy.signal as signal
arr1 = np.random.rand(100000) # 100k random values
arr2 = np.random.rand(100000) # 100k random values
# numpy convolution is slow
%timeit np.convolve(arr1, arr2) #9.05 s ± 128 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
# scipy convolution is fast
%timeit signal.fftconvolve(arr1, arr2) # 9.25 ms ± 349 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)