python – numpy数组中的多个累积和

我是numpy的新手,所以如果这个问题已经被问到我很抱歉.我正在寻找一种矢量化解决方案,它能够在一维numpy数组中运行多个不同大小的cumum.

my_vector=np.array([1,2,3,4,5])
size_of_groups=np.array([3,2])

我想要的东西

np.cumsum.group(my_vector,size_of_groups)
[1,3,6,4,9]

我不想要一个带循环的解决方案. numpy函数或numpy操作.

解决方法:

不确定numpy,但是pandas可以通过groupby cumsum很容易地做到这一点:

import pandas as pd

s = pd.Series(my_vector)
s.groupby(s.index.isin(size_of_groups.cumsum()).cumsum()).cumsum()

0    1
1    3
2    6
3    4
4    9
dtype: int64
上一篇:C自动向量化矩阵乘法循环


下一篇:用矢量化双重求和的Pythonic方法