簡體   English   中英

除了RAM之外,還有哪些因素會限制Numpy陣列的大小,並且可以對其進行調整嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM