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

如何使用numpy在同索引替换元素并将原元素后移至下一位

你当前代码的问题在于第二次调用np.insert时,传入的还是未修改的原始列表empty_arr,而非第一次插入3之后生成的新数组,相当于第一次的插入操作被直接覆盖,所以最终输出里看不到3。

实现方案

方案1:一次性插入多个值(最简洁)

你可以直接给np.insert的第三个参数传入要插入的多个值组成的序列,numpy会按顺序把这些值放在指定的插入位置。如果需要保持最终数组长度为6,可以截取前6位:

import numpy as np

empty_arr = [0] * 5
# 在索引1的位置按顺序插入3、4两个元素,截取前6位匹配预期长度
inserted = np.insert(empty_arr, 1, [3,4])[:6]
print(inserted)
# 输出:[0 3 4 0 0 0]

方案2:分步插入(符合你原本的分步操作逻辑)

如果需要分步插入,第二次插入时要使用第一次插入后得到的新数组作为操作对象,插入位置设为2,最后截取前6位即可:

import numpy as np

empty_arr = [0] * 5
# 第一步插入3到索引1的位置,得到长度为6的数组
inserted = np.insert(empty_arr, 1, 3)
# 第二步用第一次插入后的inserted作为输入,插入4到索引2的位置,截取前6位
inserted = np.insert(inserted, 2, 4)[:6]
print(inserted)
# 输出:[0 3 4 0 0 0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:24:00