如何通过Xi-X(i-1)运算从原向量生成新差值向量?
如何计算向量元素的相邻差值(Xi - X(i-1))
这本质是计算向量的一阶差分,即每个元素减去其前一个元素,最终生成的新向量长度会比原向量少1(因为第一个元素没有前置元素)。下面是几种常用工具的实现方式:
Python 实现
使用 NumPy(推荐,适合数值计算场景)
NumPy 内置了diff()函数,直接完成相邻元素的差值计算:
import numpy as np # 定义原始向量 original_vec = np.array([2, 5, 9, 14, 20]) # 计算相邻差值 diff_vec = np.diff(original_vec) print(diff_vec) # 输出: [3 4 5 6]
纯 Python 列表(无需第三方库)
用列表推导式遍历从第二个元素开始的所有元素,逐个减去前一个元素:
original_vec = [2, 5, 9, 14, 20] diff_vec = [original_vec[i] - original_vec[i-1] for i in range(1, len(original_vec))] print(diff_vec) # 输出: [3, 4, 5, 6]
R 语言实现
R 同样内置了diff()函数,用法简洁:
original_vec <- c(2, 5, 9, 14, 20) diff_vec <- diff(original_vec) print(diff_vec) # 输出: 3 4 5 6
MATLAB 实现
MATLAB 的diff()函数也能直接完成该计算:
original_vec = [2, 5, 9, 14, 20]; diff_vec = diff(original_vec); disp(diff_vec); % 输出: 3 4 5 6
核心逻辑说明
所有实现的本质都是:从向量的第2个元素(索引为1)开始,依次取当前元素与前一个元素做减法,最终将所有差值收集为新向量。
内容的提问来源于stack exchange,提问作者Ktrm
相关产品推荐
相关产品推荐

