このような配列があるとします
>>> a = np.arange(1,8).reshape((1,-1))
>>> a
array([[1, 2, 3, 4, 5, 6, 7]])
a
の各アイテムについて、「次の4つのアイテムの累積」を作成したいと思います。つまり、私の期待される出力は
1, 2, 3, 4, 5, 6, 7, 8
1+2, 2+3, ...
1+2+3 2+3+4 ...
1+2+3+4 2+3+4+5 ...
つまり、次を含む行列
1, 2, 3, 4, 5, 0, 0, 0
3, 5, 7, 9, 11,0, 0, 0
6, 9, 12,15,18,0, 0, 0
10,14,18,21,26,0, 0, 0
最後の 3 項目については cumsum 操作を正しく実行できないため、あると予想され0
ます。私は単一の絶頂を行う方法を知っています。実際、配列は
a[:4].cumsum().reshape((-1,1)); a[1:5].cumsum().reshape((-1,1))...
水平に積み上げます。ただし、これを効率的な方法で行う方法がわかりません。これを行うための素晴らしいベクトル化されたnumpyの方法は何でしょうか? また、効率性や読みやすさの点でscipy
優勢である限り、パッケージにもオープンです。numpy