将多个对象转储到同一个文件中

时间:2016-02-13 16:29:39

标签: python numpy scipy pickle

让我们说我有一个大约10万对字符串的字典,以及一个形状(100k,500)的numpy矩阵。我想将它们保存到同一文件中的磁盘上。

我现在正在做的是使用cPickle转储字典,使用scipy.io.savemat转储矩阵。这样,转储/加载速度非常快。但问题是,由于我使用不同的方法,我获得了2个文件,我想只有一个文件包含我的2个对象。我怎么能这样做?

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

1 个答案:

答案 0 :(得分:0)

您可以使用dilldill.dump访问并使用dump中的numpy方法来存储arraymatrix对象,因此它的存储方式与numpydill.dump对象相同。如果您直接从dill对象上的方法执行此操作。你只是joblib字典。

dill还能够以压缩格式存储泡菜,但速度较慢。正如评论中所提到的,还有joblib,它也可以与cloudpickle相同......但基本上,dill利用klepto(这是另一个序列化程序) )或者也可以使用dill来进行序列化。

如果您有一本庞大的字典,并且不需要同时拥有所有内容......也许更好的选择是dict,它可以使用高级序列化方法(来自dict)将dump存储到磁盘(或数据库)上的多个文件中,在内存中有一个代理numpy,使您只能获得所需的条目。

所有这些软件包都为标准python和module.exports = function(app){ app.post('/recording', function(req,res){ // update request body proxy.web(req, res, { target: <<host>>:<<port>>}); }, jsonParser); } 对象提供了快速统一的FFForever