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

如何实现cumsum函数的逆运算?numpy中该怎么操作?

numpy后缀和数组还原实现方案

实现逻辑

你提供的输入数组本质是右向后缀累积和数组,对应关系为:

输入数组第i个元素 = 目标数组第i个元素到最后一个元素的和

因此还原逻辑非常简单:

  • 输入数组的前n-1位 减去 输入数组后移1位的前n-1位,得到目标数组的前n-1位
  • 直接保留输入数组的最后一位作为目标数组的最后一位

代码实现

import numpy as np

# 构造输入数组
input_arr = np.array([20, 10, 1])
# 执行计算
res_arr = np.append(input_arr[:-1] - input_arr[1:], input_arr[-1])

print(res_arr)

运行输出:

[10  9  1]

你也可以用np.diff方法简化写法,效果完全一致:

res_arr = np.append(-np.diff(input_arr), input_arr[-1])

通用说明

该方法适用于任意长度的同类型后缀和数组,无需调整逻辑即可直接复用。

内容的提问来源于stack exchange,提问作者Galen BlueTalon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:06:10