将多个对象倾倒到同一fi中

2024-04-18 04:44:15 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个包含100k对字符串的字典和一个numpy矩阵(100k,500)。我想将它们保存在同一个文件中的磁盘上。在

我现在要做的是使用cPickle转储字典,然后scipy.io.savemat将矩阵转储。这样,卸载/装载速度非常快。但问题是,由于我使用不同的方法,我得到了2个文件,我希望只有一个文件包含我的2个对象。我该怎么做?在

我可以在同一个文件中对它们进行cPickle,但是在大数组上cPickle速度非常慢。在


Tags: 文件对象方法字符串ionumpy字典矩阵
1条回答
网友
1楼 · 发布于 2024-04-18 04:44:15

您可以使用dilldill.dump访问并使用来自numpydump方法来存储array或{}对象,因此它的存储方式与直接从numpy对象的方法相同。你只要dill.dump字典。在

dill还可以以压缩格式存储pickle,但速度较慢。正如在注释中提到的,还有joblib,它也可以做与dill相同的操作……但是基本上,joblib利用{}(这是另一个序列化程序)或者也可以使用dill来执行序列化。在

如果您有一个巨大的字典,并且不需要一次所有的内容…也许更好的选择是klepto,它可以使用高级序列化方法(从dill)将dict存储到磁盘(或数据库)上的多个文件中,内存中有一个代理dict,它使您只能获取所需的条目。在

所有这些包都为标准python和numpy对象提供了一个快速统一的dump。在

相关问题 更多 >