我使用以Python .npz格式存储的数组。我有很多这些文件,它们都有相同的共同结构:filename my_file_var1_var2_var3.npz
包含以下项目(所有数组都是32位Floats):
超过1000个文件非常烦人,每个文件最终需要大约4Mb。我认为将它们转移到容器(如HDF5 / Pytables或类似容器)会很好。不同的数组只是数组,没有优先排序或任何东西(它们是有效的矩阵或将被操作的向量堆栈)。每个文件名的所有数组都需要同时使用。
是否有关于哪种格式更好地检索与var1
,var2
和var3
相关联的数组的建议,这些数据是可移植且有效的存储
答案 0 :(得分:1)
使用PyTables以HDF5格式存储数据集肯定会有意义(例如参见example)。
它不仅会将您的所有数据放在同一个容器中,而且还可以通过BLOSC获得压缩,高效查询以及更快的读/写访问权。
由于您的商品具有可变形状,因此您无法将所有相同类型的商品放入公共数组中。所以你有几个选择,
def link_to(text='',link='#',options={})
link = link.include?('?') ? "#{link}&layout=foo" : "#{link}?layout=foo"
super(text,link,options)
end
是可变的但具有一些合理的最大值N
(例如20或30),您只需创建大小为N_max
的唯一数组并填充您不需要的元素。 ; t默认需要零。令人惊讶的是,如果您需要同时查询所有项目,这可能会更有效,如果您使用压缩,则不会看到大小开销。