如果我有一个64位整数的32 ^ 3数组,但它只包含十几个不同的值,你能告诉HDF5使用“内部映射”来节省内存和/或磁盘空间吗?我的意思是阵列将以64位整数正常访问,但每个值在内部将作为字节(?)索引存储到64位整数的表中,可能节省大约7/8的内存和/或磁盘空间。如果可以,它是否实际上节省了内存,磁盘空间或两者兼而有之?
答案 0 :(得分:1)
我不相信HDF5提供了开箱即用的功能,但没有理由你无法实现例程将数据写入HDF5文件并以你看起来的方式再次读回来想要。我想你可以将查找表和数组写入不同的数据集。
有可能,但我没有任何证据表明,HDF的压缩工具可以充分压缩整数数据集,以节省大量空间。
然后,对于我使用的HDF5文件(10s的GB),我不愿意尝试设计我自己的编码方案来保存如此适度的空间,因为32768元素的64位数字数组可能是免除。当然,您可以将2097152位的数据集转换为131072中的一个,但磁盘空间(甚至是RAM)这些天并不紧张。
我开始形成你试图使用HDF5的印象,也许是智能手机: - )