You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中多维数组cumsum逆运算的实现方法

Python中多维数组累积求和(cumsum)的逆运算实现

我想了解如何在Python中对多维数组执行累积求和(cumsum)的逆运算。

例如,我们可以通过以下代码得到二维数组T的累积数组P:

import numpy as np
T = np.array([[1,3,2],[5,5,6],[1,8,3]])
P = np.cumsum(np.cumsum(T, axis=0), axis=1)
print(P)
# P的结果为:
# [[1, 4, 6],
#  [6,14,22],
#  [7,23,34]]

我的问题是:如何从P还原出T?我需要实现一种适用于任意维度数组的还原方法。

已知Julia语言有对应的实现方案,现寻求Python的实现方式。

补充说明
感谢各位的优质解答,我已对两种推荐方法的计算成本进行对比,二者效率均表现出色:

T = np.random.randint(100, size=[100,50,25,50])
%timeit cumdiff(T) 
#319 ms ± 134 μs per loop (mean ± std. dev. of 7 runs, 1 loop each)
%timeit decumsum(T)
#324 ms ± 943 μs per loop (mean ± std. dev. of 7 runs, 1 loop each)

内容的提问来源于stack exchange,提问作者Sakurai.JJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 23:59:57