我有一个大的,稀疏的多维查找表,其中单元格包含大小从34 kB到大约10 MB(基本上存储在此bin / bucket / cell中的一个或多个元素)的数组。我的原型尺寸为30 ** 5 = 24,300,000,其中只有4,568个单元非空(因此它很稀疏)。原型非空单元格包含大小介于34 kB和7.5 MB之间的结构化数组。在556 MB,原型很小,足以适应内存,但生产版本将更大;也许100-1000次(很难估计)。这种增长主要是由于尺寸增加,而不是由于单个细胞中包含的数据。我的典型用例是写一次(或很少),经常阅读。
db[(29,27,29,29,16)]
是一个大约1 MB的结构化numpy.ndarray
。但是,随着它的增长,这将不适合记忆。shelve
模块。 tables
速度很快,特别是对于一次写入,经常阅读用例,但我认为它不适合我的数据结构。entry-29-27-29-29-16
的文件的目录,然后存储{{1}某种格式的对象(NetCDF,HDF5,npy ......)。如上所述存储数据结构的方法是什么,它具有高效的存储和快速的数据检索?
答案 0 :(得分:0)
根据我的理解,您可能希望查看令人惊叹的pandas包,因为它具有您所描述的sparse data structure的特定工具。
此外,尽管此stackoverflow post并未专门针对稀疏数据,但对于使用pandas
进行BIG数据这是一个很好的描述,这可能很有用。
祝你好运!