Python中如何计算数组相邻元素的差值得到目标数组
问题解决思路
你的代码核心问题是for i in array遍历拿到的是数组的元素值,不是元素的索引位置,所以不能用i来定位前后元素。下面给你三种可直接运行的实现方案:
方案1:索引遍历(最适合新手理解)
直接遍历数组的索引位置,从第二个元素开始逐个和前一个元素求差:
array = [1, 1, 2, 3, 5, 8] diff = [] # range左闭右开,终点写len(array)就能取到最后一个元素的索引 for i in range(1, len(array)): current_val = array[i] prev_val = array[i-1] diff.append(current_val - prev_val) print(diff) # 输出结果:[0, 1, 1, 2, 3]
方案2:zip配对写法(更简洁)
用zip将原数组和去掉首元素的数组配对,直接遍历相邻元素对求差:
array = [1, 1, 2, 3, 5, 8] diff = [curr - prev for prev, curr in zip(array, array[1:])] print(diff)
方案3:numpy内置方法(数据处理场景常用)
如果是做数值计算相关的开发,直接调用numpy封装好的diff方法,一行即可得到结果:
import numpy as np array = np.array([1, 1, 2, 3, 5, 8]) diff = np.diff(array) print(diff) # 输出:[0 1 1 2 3]
内容的提问来源于stack exchange,提问作者MSDS
相关产品推荐
相关产品推荐

