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

使用Numpy实现一维数组上采样:插入k-1个零的问题

解决numpy一维数组插入多个零实现上采样的报错问题

错误原因

当k=3时,你需要在原数组的4个元素间隙(len(A)-1=4)每个位置插入2个零,但原代码中values=np.zeros(k-1)是长度为2的数组,而np.insert默认每个索引位置仅插入1个元素,此时长度为2的values数组无法匹配4个索引位置的插入需求,导致形状不匹配报错。

解决方法1:构造重复插入索引

通过重复每个间隙的索引位置k-1次,同时构造对应长度的零数组,实现每个间隙插入k-1个零:

import numpy as np

k = 3
A = np.array([1,2,3,4,5])
# 每个插入位置重复k-1次,比如原间隙位置1、2、3、4各重复2次,得到[1,1,2,2,3,3,4,4]
insert_indices = np.repeat(np.arange(1, len(A)), k-1)
# 生成对应长度的零数组
B = np.insert(A, insert_indices, values=np.zeros(len(insert_indices), dtype=int))
print(B)
# 输出:[1 0 0 2 0 0 3 0 0 4 0 0 5]

解决方法2:用reshape+pad实现高效上采样

这种方法无需处理索引,利用numpy的矢量操作,更适合大规模数组:

import numpy as np

k = 3
A = np.array([1,2,3,4,5])
# 将原数组转为列向量,在每个元素右侧补k-1个零,再展平为一维数组
B = np.pad(A.reshape(-1, 1), ((0,0), (0, k-1)), mode='constant').flatten()
print(B)
# 输出:[1 0 0 2 0 0 3 0 0 4 0 0 5]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:05:21