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

Python字典存入numpy数组时旧元素自动被覆盖的问题是什么原因?

问题原因

  • NumPy数组属于可变对象,Python中对可变对象的直接赋值默认传递的是内存引用,而非独立的数据副本。
  • 你的代码里所有字典条目都指向同一个arr_run数组的内存地址,只要原数组被修改,所有引用该地址的字典值都会同步更新,自然无法保留历史状态。

修复方法

存到字典时主动创建数组的独立拷贝,调用NumPy数组自带的copy()方法即可,修改赋值语句为:

d['bump'+str(i)] = arr_run.copy()

修改后完整代码

import numpy as np

d = dict()
arr_run = np.zeros([10,5])
for i in range(10):
    arr = np.random.randn(10-i,5)
    arr_run[i:,:] = arr
    d['bump'+str(i)] = arr_run.copy()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:27:00