磁盘阵列上的大容量



我有一个稀疏数组,它似乎太大了,无法在内存中有效地处理(2000x2500000,浮点)。 我可以将其形成稀疏lil_array(scipy),但是如果我尝试输出列或行压缩稀疏数组(A.tocsc(),A.tocsr()),我的机器内存不足(并且文本文件中的数据之间也存在严重的不匹配4.4G和纠察的lil数组12G - 最好有一个更接近原始数据大小的磁盘格式)。

将来我可能会处理更大的阵列。

问:以透明的方式处理大型磁盘阵列的最佳方式是什么? 例如,行和列的总和、向量积、最大值、最小值、切片等?

pytables 是要走的路吗? 是否有一个好的(快速的)SQL-numpy 中间件层? Numpy 内置磁盘阵列上的秘密?

过去,对于

(稍小的)数组,我总是只是将长计算结果缓存到磁盘上。 当阵列最终<4G 左右但不再站得住脚时,这有效。

我经常使用内存映射numpy数组来处理数 GB 的数值矩阵。我发现它们非常适合我的目的。显然,如果数据的大小超过RAM的数量,则必须小心访问模式以避免抖动。

最新更新