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

Python中Numpy数组相邻元素依次相加的实现方法求助

解决Numpy数组相邻元素依次相加的问题

嘿,刚接触Python和Numpy遇到这种小问题太正常啦,别着急!我给你两种实现思路,从易懂到高效,你可以慢慢理解~

最简洁高效的Numpy原生方法(推荐)

Numpy的切片功能简直是为这种需求量身定做的!核心思路就是把数组分成两部分:除最后一个元素的所有元素和除第一个元素的所有元素,然后直接让这两个切片相加——Numpy会自动帮你把对应位置的元素两两相加,刚好就是相邻元素的和。

举个实际的代码例子:

import numpy as np

# 定义你的原始数值数组
my_array = np.array([2, 3, 4, 5, 6])
# 执行相邻元素相加操作
adjacent_sums = my_array[:-1] + my_array[1:]

print(adjacent_sums)  # 输出结果:[ 5  7  9 11]

简单解释下切片:

  • my_array[:-1]:取数组中从第一个元素到倒数第二个元素(比如上面的例子里就是[2,3,4,5])
  • my_array[1:]:取数组中从第二个元素到最后一个元素(也就是[3,4,5,6])
  • 两个切片相加时,Numpy会逐元素对应相加,完美实现你要的“索引i和i+1元素相加”的效果~

适合新手理解的循环方法

如果你想先搞清楚底层逻辑,也可以用Python基础的循环来实现,虽然效率不如Numpy原生方法,但更容易理解:

import numpy as np

my_array = np.array([2, 3, 4, 5, 6])
sums_list = []

# 循环遍历到倒数第二个元素(因为要和下一个元素相加)
for i in range(len(my_array) - 1):
    # 把当前元素和下一个元素的和加入列表
    sums_list.append(my_array[i] + my_array[i+1])

# 把列表转成Numpy数组(如果需要的话)
adjacent_sums = np.array(sums_list)
print(adjacent_sums)  # 同样输出:[ 5  7  9 11]

小提示

当你的数组规模很大时,一定要用第一种切片相加的方法!Numpy的向量运算比Python普通循环快几十甚至上百倍,这也是Numpy处理数值数据的核心优势~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:19:52