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

如何处理Numpy数组:固定首元素后求后项减前项并将末位设为0?

解决方案

方法一:拼接差值并替换末尾元素

先保留原数组的第一个元素,用np.diff计算后续元素的差值,再将两部分拼接,最后把结果的最后一位设为0:

import numpy as np

a = np.array([10,20,22,44])
result = np.concatenate([[a[0]], np.diff(a)])
result[-1] = 0
print(result)  # 输出: [10 10  2  0]

方法二:直接创建新数组赋值

初始化一个和原数组同形状的空数组,逐个赋值:第一个元素直接取原数组值,中间元素用当前位减前一位,最后一位设为0,逻辑更直观:

import numpy as np

a = np.array([10,20,22,44])
result = np.empty_like(a)
result[0] = a[0]
result[1:-1] = a[1:-1] - a[:-2]
result[-1] = 0
print(result)  # 输出: [10 10  2  0]

方法三:利用np.roll实现

通过np.roll将数组右移一位,计算原数组和右移数组的差值,再还原第一个元素,最后把末尾设为0:

import numpy as np

a = np.array([10,20,22,44])
result = a - np.roll(a, 1)
result[0] = a[0]
result[-1] = 0
print(result)  # 输出: [10 10  2  0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:02:12