我有一个稀疏数组,似乎太大了,无法有效地处理内存中的数据(2000x2500000,float)。我可以将它形成一个稀疏的lil_数组(scipy),但是如果我尝试输出一个列或行压缩的稀疏数组(a.tocsc(),a.tocsr()),我的机器内存不足(而且文本文件4.4G中的数据与pickeled lil数组12G之间也存在严重的不匹配,最好使用更接近原始数据的磁盘格式尺寸)。在
我将来可能会使用更大的阵列。在
问:以一种透明的方式处理大型磁盘阵列的最佳方式是什么。例如,行和列的和,向量积,最大值,最小值,切片等等?在
pytables是正确的方法吗?有一个好的(快速的)sqlnumpy中间件层吗?numpy内置磁盘阵列的秘密?在
在过去,对于(稍小的)数组,我总是将长时间的计算结果缓存到磁盘上。当阵列最终达到<;4G左右,但不再有效时,这种方法就有效了。在
我经常使用memory-mapped ^{} arrays 来处理千兆字节的数值矩阵。我发现它们对我的目的非常有效。显然,如果数据的大小超过了RAM的数量,就必须小心访问模式,以避免thrashing。在
相关问题 更多 >
编程相关推荐