对要累积求和的数组元素的数量设置限制?
Setting a limit on the number of array elements to be cumulatively summed?
我有一个长度为 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]
我是不是漏掉了什么?
我会使用 zip
:
a_ = [0] * 2 + a
list(map(sum, zip(a_, a_[1:], a_[2:])))
> [1, 3, 9, 12, 13]
我有一个长度为 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]
我是不是漏掉了什么?
我会使用 zip
:
a_ = [0] * 2 + a
list(map(sum, zip(a_, a_[1:], a_[2:])))
> [1, 3, 9, 12, 13]