如何将 numpy 数组列表保存到单个文件中并将文件加载回原始形式

How to save a list of numpy arrays into a single file and load file back to original form

我目前正在尝试将 numpy 数组列表保存到单个文件中,此类列表的示例可以采用以下形式

import numpy as np
np_list = []
for i in range(10):
    if i % 2 == 0:
        np_list.append(np.random.randn(64))
    else:
        np_list.append(np.random.randn(32, 64))

我可以使用 savez 通过遍历列表将它们全部合并到一个文件中,但是还有其他方法吗?我正在尝试保存函数 model.get_weights() 返回的权重,它是 ndarray 的列表,在从保存的文件中检索权重后,我打算使用 model.set_weights(np_list) 将这些权重加载到另一个模型中.因此列表的格式必须保持不变。让我知道是否有人有这样做的优雅方法。

我会选择 np.savenp.load,因为它与平台无关,比 savetxt 更快,并且可以处理数组列表,例如:

import numpy as np

a = [
    np.arange(100),
    np.arange(200)
]
np.save('a.npy', a, allow_pickle=True)
b = np.load('a.npy', allow_pickle=True)

这是 np.save and np.load. And in this answer you can find a better discussion

的文档