![](/img/trans.png)
[英]How much memory is used by the underlying buffer of a broadcasted numpy array?
[英]How much memory in numpy array? Is RAM a limiting factor?
我正在使用numpy創建一個邊長為100的立方體數組,因此總共包含100萬個條目。 對於每百萬個條目,我插入一個100x100矩陣,其條目由隨機生成的數字組成。 我使用以下代碼來執行此操作:
import random
from numpy import *
cube = arange(1000000).reshape(100,100,100)
for element in cube.flat:
matrix = arange(10000).reshape(100,100)
for entry in matrix.flat:
entry = random.random()*100
element = matrix
我期待這需要一段時間,但是生成了100億個隨機數,我不確定我的電腦是否可以處理它。 這樣一個陣列會占用多少內存? RAM是一個限制因素,即如果我的計算機沒有足夠的RAM,它是否無法實際生成陣列?
此外,如果有更高效的實現此代碼,我會很感激提示:)
幾點:
cube.dtype
是int64
,並且它有1,000,000個元素,那么它將需要1000000 * 64 / 8 = 8,000,000
cube.dtype
1000000 * 64 / 8 = 8,000,000
字節(8Mb)。 element = matrix
不是替換cube
的元素,而是簡單地覆蓋element
變量,保持cube
不變。 entry = random.rand() * 100
。 對於函數的“內部”部分,請查看numpy.random模塊
import numpy as np
matrix = np.random.random((100,100))*100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.