我有一个稀疏的数组,似乎太大而无法在内存中有效地处理(2000x2500000,float)。我可以把它变成一个稀疏的lil_array(scipy),但是如果我尝试输出一个列或行压缩稀疏数组(A.tocsc(),A.tocsr()),我的机器内存耗尽(还有一个严重的不匹配4.4G文本文件和picilled lil array 12G中的数据 - 这将是一个更接近原始数据大小的磁盘格式)。numpy磁盘阵列上的大号
我可能会在未来讨论更大的阵列。
问题:处理大型磁盘阵列的最佳方法是什么,以便我可以透明地使用常规numpy函数。例如,沿行和列,矢量产品,最大值,最小值,切片等总和?
是pytables的路要走吗?有没有一个好的(快速)sql-numpy中间件层?磁盘阵列内置numpy的秘密?
在过去(略小)的数组中,我总是将长计算结果pickel-cached缓存到磁盘。这在阵列最终成为4G左右但不再成立时起作用。
当你腌制你的数组时,你确定使用二进制协议吗?如果您使用默认的文本协议,那么这可能是大文件大小的原因。 – DaveP 2012-04-26 05:57:37