You need to enable JavaScript to run this app. Python实现不同形状numpy数组带偏移循环叠加到固定形状数组
优惠活动
大模型
产品
解决方案
定价
更多

Python实现不同形状numpy数组带偏移循环叠加到固定形状数组

Numpy 循环偏移叠加函数的简洁实现

你可以直接使用numpy原生的np.add.at方法配合模运算实现该功能,全程为原地操作,无额外内存开销,性能完全满足音频缓冲区实时处理需求,核心逻辑仅一行:

import numpy as np

def sumWithRoll(buffer, indata, offset):
    np.add.at(buffer, (np.arange(min(len(indata), len(buffer))) + offset) % len(buffer), indata[:len(buffer)])

效果验证

示例1

a = np.array([1, 1, 1, 1, 1])
b = np.array([5, 6])
sumWithRoll(a, b, offset=1)
print(a)
# 输出:[1 6 7 1 1]

示例2

a = np.array([1, 1, 1, 1, 1])
b = np.array([5, 6, 7, 8])
sumWithRoll(a, b, offset=3)
print(a)
# 输出:[8 9 1 6 7]

实现说明

  • 索引计算时自动对offset做模长度处理,支持任意大小的偏移值
  • 自动截断长度超过buffer的输入数组indata,和原有逻辑完全对齐
  • 所有运算均为numpy向量化实现,运行速度和你原有的手动切片实现相当,没有性能损失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 15:54:03