[英]How much memory is used by the underlying buffer of a broadcasted numpy array?
[英]How much memory is used by a numpy ndarray?
有人知道 numpy ndarray 使用了多少内存吗? (假设有 10,000,000 个浮动元素)。
该数组只是存储在内存中的一个连续块中。 假设“float”是指标准双精度浮点数,则数组每个元素将需要 8 个字节。
通常,您可以简单地查询nbytes
属性以获得数组的总内存需求,以及itemsize
以字节为单位的单个元素的大小:
>>> a = numpy.arange(1000.0)
>>> a.nbytes
8000
>>> a.itemsize
8
除了实际的数组数据外,还会有一个包含数组元信息的小数据结构。 特别是对于大型数组,这种数据结构的大小可以忽略不计。
要以字节为单位获取 NumPy 数组的总内存占用量,包括元数据,您可以使用 Python 的sys.getsizeof()
函数:
import sys
import numpy as np
a = np.arange(1000.0)
sys.getsizeof(a)
8104 字节是结果
sys.getsizeof()
适用于任何 Python 对象。 它报告内部内存分配,不一定是对象写入某种文件格式后的内存占用。 有时它具有极大的误导性。 例如,对于 2d 数组,它不会深入研究 vector 的内存占用。
我高斯,很容易,我们可以通过print(a.size // 1024 // 1024, a.dtype)
它类似于print(a.size // 1024 // 1024, a.dtype)
有多少MB
,但是使用参数dtype
, float=8B, int8=1B .. .
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.