1
我需要形成總尺寸爲2,886 X 2,003,817的2D矩陣。我嘗試使用numpy.zeros製作二維零元素矩陣,然後計算並分配矩陣的每個元素(其中大部分都是零子,我需要替換其中的幾個)。用於大數據的陣列
但是當我嘗試numpy.zero初始化我的矩陣我碰到下面的內存錯誤:
C=numpy.zeros((2886,2003817)) "MemoryError"
我也嘗試以形成沒有初始化的矩陣。基本上我計算每行的元素在我的算法的每次迭代,然後
C=numpy.concatenate((C,[A]),axis=0)
其中C是我的最終矩陣,A是在當前迭代計算出的行。但我發現這種方法需要很多時間,我猜這是因爲使用numpy.concatenate(?)
請問我是否有辦法避免在初始化我的矩陣時出現內存錯誤或有沒有更好的方法或建議來形成這種大小的矩陣?
感謝, 阿米爾
你應該使用'scipy.sparse'矩陣。 – Akavall
numpy.zeros的默認數據類型是numpy.float64(一個8字節的浮點數)。因此,矩陣的基本內存需求是2,886 * 2,003,817 * 8字節== 44.1 GB的RAM。 –