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

将HDF5数据集写入字典numpy数组时数据覆盖问题求解

问题成因及解决方法

核心问题

你代码里的np.full((10,10), {})是关键问题所在。因为字典是可变对象,numpy用full填充数组时,不会为每个元素生成新的空字典,而是把同一个字典的引用复制到数组的所有位置。这就意味着数组里的100个元素其实指向内存中同一个字典——你修改任意一个位置的字典内容,其他所有位置的"字典"都会同步变化,最终所有单元格都只显示最后一次修改的结果。

修复方案

把创建数组的代码换成列表推导式,为每个位置生成独立的空字典,再转成numpy数组:

# 替换原来的matrix_dict = np.full((10,10), {})
matrix_dict = np.array([[{} for _ in range(10)] for _ in range(10)])

额外建议

别用eval(group)解析组名,这存在安全风险(如果组名被恶意构造会执行危险代码)。改用字符串分割更安全:

# 替换eval(group)[0], eval(group)[1]
row, col = map(int, group.split(', '))
matrix_dict[row, col][key] = value[:]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:20:36