Search code examples
pythonarraysnumpysumcumsum

python sum all next n values in array at each index


I have an array:

my_array = [1, 13, 6, 100, 12,23,45] and would like to create a new array that for each index in my_array is the sum of 3 next index values

summed_array = [119, 118, 135, 80, 68,45,0] I tried something like np.cumsum but this cumlative values

import numpy as np

sum_value = 0

my_array = [1, 13, 6, 100, 12,23,45]
summed_array = [0, 0, 0, 0, 0,0,0]
print(len(my_array))
for ind,i in enumerate(my_array):
    if ind+3< len(my_array):
        summed_array[ind] =my_array[ind+1]+my_array[ind+2]+my_array[ind+3]
    elif ind+2 < len(my_array):
         summed_array[ind] =my_array[ind+1]+my_array[ind+2]
    elif ind+1 < len(my_array):
        summed_array[ind]=my_array[ind+1]
    else:
        summed_array[ind] = 0
print(summed_array)  ``` 

Solution

  • This can be done

    a = my_array
    summed_array= [sum(a[i:i+3]) for i in range(len(a))]