压缩大型python对象

Ark*_*Ark 1 python memory compression numpy

我试图压缩一个巨大的python对象〜15G,并将其保存在磁盘上.由于需求限制,我需要尽可能地压缩这个文件.我目前正在使用zlib.compress(9).我主要担心的是,在压缩过程中所占用的内存超过了我在系统32g上可用的内存,并且预计对象的大小会增加.是否有更有效/更好的方法来实现这一目标.谢谢.

更新:还要注意我要保存的对象是一个稀疏的numpy矩阵,我在压缩前序列化数据,这也增加了内存消耗.由于我在序列化后不需要python对象,gc.collect()会帮忙吗?

Ign*_*ams 5

应该进行增量(de)压缩,zlib.{de,}compressobj()以便最小化内存消耗.另外,通过使用bz2替代,对于大多数数据可以获得更高的压缩比.