2015-04-09 3 views
0

У меня есть массив длиной 5, например.Установка ограничения на количество элементов массива, которые должны быть суммированы?

array = [1,2,6,4,3] 

То, что я хочу, это новый массив кумулятивно суммирование максимального заданного числа предыдущих значений, то есть 3:

return_array = [1,3,9,12,13] 

Использования NumPy функции на «cumsum» казалась хорошей отправной точкой, однако это представляется ограничено суммированием всего диапазона элементов, что дает:

cumsum_array = np.cumsum(array) 
cumsum_array = [1,3,9,13,16] 

Я что-то упустил?

+0

Можете ли вы показать, как вы рассчитали '12,13'? – Kasramvd

+0

Этот ответ разницы между концами - тот, который вы хотите: http://stackoverflow.com/a/28884909/901925 – hpaulj

ответ

-1

Я хотел бы сделать это с помощью zip:

a_ = [0] * 2 + a 
list(map(sum, zip(a_, a_[1:], a_[2:]))) 

> [1, 3, 9, 12, 13] 
Смежные вопросы