私はやっかいな初心者なので、この質問がすでに行われている場合は申し訳ありません。1次元のnumpy配列内で異なるサイズの複数のcumsumを実行できるようにするベクトル化ソリューションを探しています。
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についてはよくわかりませんが、パンダは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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加