我有一個稀疏的數組,似乎太大而無法在內存中有效地處理(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