2012-10-30 38 views

回答

5

可以使用array.itemsize(以字節爲單位所包含的類型的大小)和array.flat獲得長:

# a is your array 
bytes = a.itemsize * a.size 

它不是精確值,因爲它忽略了整個陣列的基礎設施,但對於大數組來說,它的價值是重要的(我猜你關心,因爲你有很大的東西)

如果你想在稀疏數組上使用它,你必須修改它,因爲稀疏沒有itemsize屬性。你必須訪問D型,並從它那裏得到的itemsize:

bytes = a.dtype.itemsize * a.size 

總的來說,我不認爲這是容易評估由一個python對象佔用的實際內存...的numpy的陣列是一個例外是剛C陣列上的薄層

+0

+1:'a.size'而不是'len(a.flat)'也可以工作 – unutbu

+0

謝謝,它是否適用於像稀疏矩陣這樣的對象? –

+0

你是完全正確的,我只是忘記了大小屬性 – EnricoGiampieri

0

如果您在IPython內部,也可以使用它的%whosmagic function,它爲您提供有關會話變量的信息,幷包括每個RAM所佔用的RAM數量。

相關問題