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

如何用Numpy实现列表的累积差值计算?

迭代减法生成新数组的解决方案

Python 原生实现

无需依赖第三方库,通过循环维护当前计算值即可完成需求:

original_list = [100, 70, 25, 10, 5]
new_array = []
current_val = original_list[0]

for num in original_list[1:]:
    current_val -= num
    new_array.append(current_val)

print(new_array)  # 输出: [30, 5, -5, -10]

Numpy 实现

高效简洁版(利用累积和)

借助np.cumsum计算后续元素的累积和,再用初始值减去这些累积和,一步得到目标数组:

import numpy as np

arr = np.array([100, 70, 25, 10, 5])
# 计算从第二个元素开始的累积和
cumulative_sums = np.cumsum(arr[1:])
# 初始值减去累积和得到结果
result = arr[0] - cumulative_sums

print(result)  # 输出: array([ 30,   5,  -5, -10])

循环版(逻辑与原生一致)

如果更习惯循环逻辑,Numpy版本的写法和原生Python基本相同:

import numpy as np

arr = np.array([100, 70, 25, 10, 5])
result = []
current_val = arr[0]

for num in arr[1:]:
    current_val -= num
    result.append(current_val)

result = np.array(result)
print(result)  # 输出: array([ 30,   5,  -5, -10])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:42:40