Python 2.7 压缩.npy数据以节省磁盘空间

Python 2.7 压缩.npy数据以节省磁盘空间,python-2.7,numpy,scipy,save,diskspace,Python 2.7,Numpy,Scipy,Save,Diskspace,我在磁盘上存储了一个巨大的数据集。因为我的数据集大约是1.5 TB。l将其分成32个示例,以便能够在Python2.7中使用numpy.save('data_1.npy')。下面是9个子数据集的示例。每一个大约30GB 每个.npy文件的形状为(示例的数量,224224,19),值为浮点值 data_1.npy data_2.npy data_3.npy data_4.npy data_5.npy data_6.npy data_7.npy data_8.npy data_9.npy 使用np

我在磁盘上存储了一个巨大的数据集。因为我的数据集大约是1.5 TB。l将其分成32个示例,以便能够在Python2.7中使用
numpy.save('data_1.npy')
。下面是9个子数据集的示例。每一个大约30GB

每个
.npy
文件的形状为
(示例的数量,224224,19
),值为浮点值

data_1.npy
data_2.npy
data_3.npy
data_4.npy
data_5.npy
data_6.npy
data_7.npy
data_8.npy
data_9.npy
使用np.save('*.npy'),我的数据集在磁盘中占用1.5 TB的空间

1) 有没有一种有效的方法来压缩我的数据集以获得一些可用磁盘空间? 2) 是否有一种比np.save()占用更少空间内存的文件保存方法


谢谢

有。但也许你应该放弃numpy的函数,转而使用hdf5(例如pytables)。这样,您就可以更好地控制各种内部结构(过滤器、压缩、块大小)。此外,您还可以根据需要读取切片(当然,numpy的memmap也可能会这样)。@sascha,使用savez_compressed/hdf5可以大幅减少磁盘上占用的空间吗?从1.5T到一些GB?
savez_compressed
创建压缩的
zip
存档。其他SO问题表明它创建了完整大小的归档文件,然后对其进行压缩。@ericlardon这是压缩方面典型的新手问题。这取决于数据。例如,理论禁止存在用于随机数据的压缩器。压缩取决于您的数据(例如噪声比)和使用的压缩alg。稍加研究,您就可以看到有哪些选项(hdf5有更多选项)。1.5 TB有时可以压缩到1字节;有时高达1.5TB。如果压缩对您如此重要,请从更大的角度来看。如果这些是jpg,则存储jpg而不是像素数据。如果已经基于像素;您可以使用png进行压缩并以二进制形式存储。