One-D

ps = list(itertools.accumulate(a))

multi-D

np.cumsum (cumulative sum)

row_cumsum = np.cumsum(a, axis=1)

prefix_sum = np.cumsum(row_cumsum, axis=0)

Or in one line (1 and 0 can be switched)

np.cumsum(np.cumsum(a, axis=1), axis=0)