【发布时间】:2016-12-26 10:25:21
【问题描述】:
我的内存对于我的数据来说太小了,所以我尝试将它打包到内存中。
以下代码确实有效,但我必须记住数据的类型,这有点不妥(很多不同的数据类型)。
有更好的建议吗?更小的运行时间也将不胜感激
import numpy as np
import zlib
A = np.arange(10000)
dtype = A.dtype
B = zlib.compress(A, 1)
C = np.fromstring(zlib.decompress(B), dtype)
np.testing.assert_allclose(A, C)
【问题讨论】:
-
您可能希望使用 blosc 包而不是 python 的 zlib 和 bz2 实现来显着加速。
-
blosc的速度提升确实令人印象深刻,压缩比也不错。你帮了我很多。
-
很高兴知道:)。一些进一步的指示:
blosc.set_nthreads(6)。compr_arr = blosc.pack_array(numpy_arr); numpy_arr = blosc.unpack_array(compr_arr)在内部保留形状和数据类型。