我注意到,将库存入NumPy数组时,nbytesgetsizeof返回两个不同的值。

例:

import sys
import numpy as np
x = np.random.rand(10000, 50)
print('x.nbytes: {0} bytes'.format(x.nbytes))
print('sys.getsizeof(x): {0} bytes'.format(sys.getsizeof(x)))


输出:

x.nbytes: 4000000 bytes
sys.getsizeof(x): 4000112 bytes


为什么?

最佳答案

这是因为nbytes仅返回存储数据的大小,而sys.getsizeof返回整个对象的大小,即存储数据的大小加上一些开销。 numpy数组的开销很小,因为它们必须存储数组维,数据类型和类似信息。

08-07 16:59