2012-10-30 40 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数量。

相关问题