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

如何在numpy中高效将数组[a,b,c]转换为[a+b+c, b+c, c]

Numpy数组后缀和转换方案

你需要实现的是浮点数numpy数组的后缀和计算,以下是性能最优的两种实现,全部基于numpy底层向量化运算,无Python层循环开销:

通用场景(任意长度数组都适用)

利用np.cumsum配合两次反转实现,代码简洁且性能拉满:

import numpy as np

# 你的输入数组
arr = np.array([a, b, c], dtype=np.float64)
# 转换逻辑
res = np.cumsum(arr[::-1])[::-1]

示例验证:输入np.array([1.5, 2.5, 3.5]),输出结果为array([7.5, 6. , 3.5]),完全符合[a+b+c, b+c, c]的要求。

固定长度为3的特殊场景

如果你的数组长度永远固定为3,也可以直接通过索引计算,性能和通用方案无明显差异:

res = np.array([arr.sum(), arr[1] + arr[2], arr[2]])

内容的提问来源于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:15:04