Python 一个numpy ndarray使用了多少内存?

Python 一个numpy ndarray使用了多少内存?,python,arrays,memory,numpy,floating-point,Python,Arrays,Memory,Numpy,Floating Point,有人知道numpy ndarray使用了多少内存吗?(假设有10000000个浮点元素)。数组只存储在内存中的一个连续块中。假设“float”是指标准的双精度浮点数,那么数组每个元素需要8字节 通常,您可以简单地查询nbytes属性以了解数组的总内存需求,查询itemsize以字节为单位的单个元素的大小: >>> a = numpy.arange(1000.0) >>> a.nbytes 8000 >>> a.itemsize 8 除了实际

有人知道numpy ndarray使用了多少内存吗?(假设有10000000个浮点元素)。

数组只存储在内存中的一个连续块中。假设“float”是指标准的双精度浮点数,那么数组每个元素需要8字节

通常,您可以简单地查询
nbytes
属性以了解数组的总内存需求,查询
itemsize
以字节为单位的单个元素的大小:

>>> a = numpy.arange(1000.0)
>>> a.nbytes
8000
>>> a.itemsize
8

除了实际的数组数据之外,还有一个小的数据结构,其中包含数组上的元信息。特别是对于大型数组,此数据结构的大小可以忽略不计。

I高斯,很容易,我们可以通过
print(a.size//1024//1024,a.dtype)

这类似于使用了多少
MB
,但是使用param
dtype
,float=8B,int8=1B…

非常感谢这两个属性的帮助。
nbytes
似乎无法正确处理广播数组。例如,
np.broadcast\u to(np.arange(1000),(int(1e15),1000)).nbytes==8e18
,这可能需要比地球上更多的RAM。