我是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