誰かがnumpy配列で逆累積合計を行う方法を推奨できますか?
「逆累積合計」は次のように定義されています(この手順の名前の修正は歓迎します)。
もし
x = np.array([0,1,2,3,4])
その後
np.cumsum(x)
与える
array([0,1,3,6,10])
しかし、私は取得したいと思います
array([10,10,9,7,4]
誰かがこれを行う方法を提案できますか?
これはそれを行います:
np.cumsum(x[::-1])[::-1]
これには.flipud()
も使用できます。これは_[::-1]
_ https://docs.scipy.org/doc/numpy/reference/generated/numpy.flipud。 html
_In [0]: x = np.array([0,1,2,3,4])
In [1]: np.flipud(np.flipud(x).cumsum())
Out[1]: array([10, 10, 9, 7, 4]
_
.flip()
はNumPy 1.12で新しく追加され、.flipud()
と.fliplr()
を1つのAPIに結合しています。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.flip.html
これは同等であり、関数呼び出しが少なくなっています。
_np.flip(np.flip(x, 0).cumsum(), 0)
_