import numpy as np
def rcumsum(array, axis=0):
s = tuple([slice(None,None,-1)] * axis + slice(None))
return np.cumsum(array.__getitem__(s), axis=axis).__getitem__(s)
要するに、np.cumsum(array[:,::-1], axis=1)[:,::-1]などとすれば良いだけの話なのですが、汎用的な処理にするためにスライスオブジェクトを使っています。numpyでは妙にsliceオブジェクトを多用しています。