繁体   English   中英

numpy ndarray 使用了多少内存?

[英]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 的内存占用。

请参阅此处的文档。 Ned Batcheldor 在这里分享了使用sys.getsizeof()注意事项。

我高斯,很容易,我们可以通过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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM