我有一个目录,里面有一堆npz文件,我想合并成一个npz文件。我知道我可以在技术上打开每个文件并连接其中的每个数组,但我正在寻找一个不需要这样做的解决方案。
我找到了这个解决方案:
import numpy as np
data_all = [np.load(fname) for fname in file_list]
merged_data = {}
for data in data_all:
[merged_data.update({k: v}) for k, v in data.items()]
np.savez('new_file.npz', **merged_data)
字符串
但由于某种原因,它实际上并没有合并数据,它只是采用了最后一个打开的npz文件的数据。
1条答案
按热度按时间koaltpgm1#
我做了更多的调查,找到了问题的解决方案。首先,在创建每个npz文件之前,我将数据存储在这样的字典中:
字符串
然后我用kwargs将数据保存在npz文件中:
np.savez_compressed('path/to/file/filename.npz', **data
)在对每个npz文件执行此操作后,我最终得到了问题开头提到的目录。然后,在另一个Python脚本中,我打开了所有文件并将其名称存储在名为
filenames
的列表中。现在,对于我的问题的实际解决方案,我这样做了:型