【问题标题】:nbytes and getsizeof return different valuesnbytes 和 getsizeof 返回不同的值
【发布时间】:2016-02-16 00:59:54
【问题描述】:

我注意到 nbytesgetsizeof 在银行到 NumPy 数组时返回两个不同的值。

例子:

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

为什么?

【问题讨论】:

  • 开销 - 形状、步幅、dtype 等

标签: python numpy memory


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2018-09-29
    • 1970-01-01
    相关资源
    最近更新 更多