我必須爲一些計算初始化一個大的二維數組。我在運行代碼時遇到「內存錯誤」。如下面在Python中處理大型二維數組
a=np.zeros((200000,200000)) ## I get memory error in this line
for i in range (0,len(rows)):
for j in range (0,len(rows)):
if pq[rows[i],cols[j]]>0:
a[rows[i],cols[j]]=1
else:
a[rows[i],cols[j]]=0
這裏給出的代碼,「行」和「COLS」是長度的一維數組200000 PQ的維度433 X 800
我使用的是64位的Windows 10系統採用英特爾®酷睿™i7-4770S CPU @ 3.10GHz×8處理器,16 Gb RAM。我正在使用Python 2.7.12。
任何幫助克服這個問題將不勝感激。我是python的新手,並且提前感謝你。
使用pyTables或generator可以解決這個問題嗎?我剛剛在網上閱讀了他們。
難道是因爲它無法分配一個大的連續內存空間嗎? 你可以試試把它分成4個更小的陣列嗎? –
我需要這個數組作爲進一步計算的輸入。它不能被分解成小陣列。 – user30