簡體   English   中英

在不使用太多 RAM 的情況下將列表轉換為 numpy 數組

[英]Convert list to numpy array without using much RAM

我想將形狀為 (1200, 140, 150, 130) 的列表轉換為 numpy 數組,但標准的numpydata = np.array(mylist)使用了大量內存。

有沒有減少內存消耗的方法來做到這一點?

如果最終結果有內存,但np.array內部使用了太多內存,您可能會繞過以塊為單位處理列表的問題。 例如:

In [236]: res = np.zeros((10,3,4),int)                                                         
In [237]: alist = np.random.randint(0,10,(10,3,4)).tolist()                                    
In [238]: for i,row in enumerate(alist): 
     ...:     res[i] = row 
In [240]: np.allclose(res, np.array(alist))                                                    
Out[240]: True

對於小數組,此迭代會更慢,但對於大數組,內存管理問題可能會超過迭代成本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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