创建一个
npz
文件:
In [147]: np.savez('test.npz',x=np.arange(3),y=np.ones((3,3)),z=np.array(3))
加载; data
是文件/变量的字典; 通过索引进行加载:
In [148]: data = np.load('test.npz')
In [149]: list(data.keys())
Out[149]: ['z', 'y', 'x']
In [150]: data['x']
Out[150]: array([0, 1, 2])
将类似的字典保存为.mat文件:
In [151]: io.savemat('a1.mat', mdict={'x':data['x'],'y':data['y'],'z':data['z']})
In [152]: io.loadmat('a1.mat')
Out[152]:
{'__globals__': [],
'__header__': b'MATLAB 5.0 MAT-file Platform: posix, Created on: Thu Feb 15 09:52:42 2018',
'__version__': '1.0',
'x': array([[0, 1, 2]]),
'y': array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]]),
'z': array([[3]])}
替代结构:
io.savemat('a1.mat', mdict={key:data[key] for key in data.keys()})
甚至更多:
io.savemat('a1.mat', mdict=data)
由于data
是一个字典。
A.npz
数据集保存到单个.mat
文件中,而不需要通过循环脚本进行操作?抱歉,我以为我表达得很清楚了。我是 Python 的新手,所以我不确定我是否遗漏了一些基础知识。 - Shinobiinpz
中加载到内存中(npz
是一个惰性加载器)。然后,你可以将所有的数组保存到mat
中作为多项字典。 - hpaulj