Hdf5 和 pickle 比原始 csv 文件需要更多 space

Hdf5 and pickle takes more space than raw csv file

我有一个大小为 18 MB 的 csv 文件(仅包含数字数据)。当我读取它并将其转换为 numpy 数组并将其保存为 hdf5 格式或 pickle 时,它​​需要大约 48 MB 磁盘 space。我们用pickle或者hdf5的时候不是应该压缩数据吗?以 hdf5 格式保存以供 tensorflow 使用是否更好? Csv 数据的形式为

2,3,66,184,2037,43312,0,0,9,2,0,1,8745,1,0,2,6,204,27,97
2,3,66,184,2037,43312,0,0,9,2,0,1,8745,1,0,2,6,204,27,78
2,3,66,184,2037,43312,0,0,9,2,0,1,8745,1,0,1,6,204,27,58

数据维度为 310584 X 20

整数的 Numpy 数组默认为 int64 dtype。这就是数据比原始数据占用更多 space 的原因。

310584 X 20 x 8 ~= 48 MB (8 Bytes is the size for int64)