Python 将密钥为npz的数据保存
我有一个矩阵Python 将密钥为npz的数据保存,python,numpy,Python,Numpy,我有一个矩阵a,我需要将它保存为npz文件,用高度键标记。我该怎么做 要将随机矩阵保存为npz,我使用以下代码: import numpy as np Test_matrix = np.random.rand(10,10) np.savez('Matrix.npz', Test_matrix) 但如果我加载文件并查找高度,则什么也找不到: M = np.load('Matrix.npz') MM = M['height'].reshape(512,512) 给出错误“height不是存档中的
a
,我需要将它保存为npz
文件,用高度
键标记。我该怎么做
要将随机矩阵保存为npz
,我使用以下代码:
import numpy as np
Test_matrix = np.random.rand(10,10)
np.savez('Matrix.npz', Test_matrix)
但如果我加载文件并查找高度
,则什么也找不到:
M = np.load('Matrix.npz')
MM = M['height'].reshape(512,512)
给出错误“height不是存档中的文件”正如注释所说,您从未告诉savez您想将其称为“height”。您可以通过将密钥作为
**kwds
传递来保存密钥。如果您在使用任何给定函数时遇到问题,请确保为其指定一个函数
此外,您无法将(10,10)
重塑为(512512)
,因此我在此处修复了此问题:
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
的关键字不必与对象的名称匹配。我上面所做的方式应该适合您。保存时,您从未在Test\u矩阵中引用height
。保存时它只是一个数组。当没有提供dict时,默认键为“arr_0”。“height”与Test_matrix
有什么关系?@hpauljheight
在另一个脚本中用作关键字,这有点难以更改。@JayMody更改键的最佳方法是什么?