python - Summing elements in a sliding window - NumPy -


there numpy way make sum each 3 elements in interval? example:

import numpy np mydata = np.array([4, 2, 3, 8, -6, 10]) 

i result:

np.array([9, 13, 5, 12]) 

we can use np.convolve -

np.convolve(mydata,np.ones(3,dtype=int),'valid') 

the basic idea convolution have kernel slide through input array , convolution operation sums elements multiplied kernel elements kernel slides through. so, solve our case window size of 3, using kernel of 3 1s generated np.ones(3).

sample run -

in [334]: mydata out[334]: array([ 4,  2,  3,  8, -6, 10])  in [335]: np.convolve(mydata,np.ones(3,dtype=int),'valid') out[335]: array([ 9, 13,  5, 12]) 

Comments