[英]What are the factors, aside from RAM, limiting Numpy array size and can they be adjusted?
說我創建一個數組:
a=np.ones((21600,13,3,128),dtype=complex)
我收到內存錯誤。
如果我將陣列的大小減半(在我的機器上創建,則nb花費的時間超過10分鍾):
b=np.ones((10800,13,3,128),dtype=complex)
它的大小以GB為單位:
b.nbytes/1024**3 = 0.803375244140625 GB
這遠遠低於我的筆記本電腦(2GB)中的RAM數量-因此,我認為創建'a'應該可以。 有什么限制因素阻止我處理如此大的數組?
理想情況下,我想使用(86400,13,3,128)
dtype=complex
創建形狀數組(86400,13,3,128)
。
有沒有辦法做到這一點而不拆分呢?
如果您的筆記本電腦具有2GB內存,而a
需要1.6GB內存,那么內存不足的可能性非常高。 Windows,您的瀏覽器,郵件等已經占用了很多。
另外,numpy需要單個連續的1.6 GB內存塊。 這進一步降低了擁有如此大的障礙的機會。
如果您的應用程序/用例允許,則可能值得嘗試將數據存儲在稀疏矩陣中。 這僅存儲非零元素-可以節省(或不節省)大量內存: http : //docs.scipy.org/doc/scipy/reference/sparse.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.