我注意到,将库存入NumPy数组时,nbytes
和getsizeof
返回两个不同的值。
例:
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数组的开销很小,因为它们必须存储数组维,数据类型和类似信息。