我有一个稀疏数组,它似乎太大而无法在内存中有效处理(2000x2500000,float)。我可以将它形成一个稀疏的 lil_array (scipy) 但是如果我尝试输出一个列或行压缩的稀疏数组 (A.tocsc(), A.tocsr()) 我的机器内存不足(而且两者之间也存在严重的不匹配文本文件中的数据 4.4G 和腌制的 lil 数组 12G - 最好有一个更接近原始数据大小的磁盘格式)。
将来我可能会处理更大的数组。
问题:以透明方式使用常规 numpy 函数的方式处理大型磁盘阵列的最佳方法是什么。例如,沿行和列的总和、向量积、最大值、最小值、切片等?
pytables 是要走的路吗?是否有一个好的(快速)sql-numpy 中间件层?numpy 内置磁盘阵列的秘密?
在过去(略小)的数组中,我总是将长计算结果pickel缓存到磁盘。当阵列最终小于 4G 左右但不再成立时,此方法有效。