首页 > 解决方案 > 用密钥保存数据为 npz

问题描述

我有一个矩阵A,我需要将它保存为一个文件,并用密钥npz标记。height我怎样才能做到这一点?

npz在我使用以下代码时保存随机矩阵:

import numpy as np
Test_matrix = np.random.rand(10,10)
np.savez('Matrix.npz', Test_matrix)

但是,如果我加载文件并查找height,则什么也找不到:

M = np.load('Matrix.npz')
MM = M['height'].reshape(512,512)

给出错误'height is not a file in the archive'

标签: pythonnumpy

解决方案


就像评论说的那样,你永远不会说savez你想称之为“高度”。您可以通过将密钥传递为**kwds. 如果您遇到问题,请务必检查文档以了解任何给定的功能。

你也不能重塑 a (10,10)(512,512)所以我在这里解决了这个问题:

import numpy as np
Test_matrix = np.random.rand(512,512)
np.savez('Matrix.npz', height=Test_matrix)
M = np.load('Matrix.npz')
MM = M['height'].reshape(512,512)
print(MM.shape)
(512, 512)

编辑:根据您的评论澄清,您传递给的关键字savez不必与对象的名称匹配。我上面做的方式应该适合你。


推荐阅读