Python 我的列表使用了多少内存?

Python 我的列表使用了多少内存?,python,numpy,memory,h5py,Python,Numpy,Memory,H5py,我通过以下方式将hdf5数据集读入内存: import h5py with h5py.File('file.hdf5') as f: a = f['data'][:] 其中“a”最多可以有1亿个实体。如何查询此列表占用了多少内存(MB/GB)?h5py将(大多数)值加载为numpy数组。数组具有shape属性和dtype 对于我在Ipython会话中碰巧拥有的阵列,我可以获得以下属性: In [211]: X.shape,X.dtype Out[211]: ((51, 13), dty

我通过以下方式将hdf5数据集读入内存:

import h5py
with h5py.File('file.hdf5') as f:
    a = f['data'][:]
其中“a”最多可以有1亿个实体。如何查询此列表占用了多少内存(MB/GB)?

h5py
将(大多数)值加载为
numpy
数组。数组具有
shape
属性和
dtype

对于我在Ipython会话中碰巧拥有的阵列,我可以获得以下属性:

In [211]: X.shape,X.dtype
Out[211]: ((51, 13), dtype('float64'))

In [212]: X.size
Out[212]: 663

In [213]: X.size, X.itemsize
Out[213]: (663, 8)

In [214]: X.nbytes
Out[214]: 5304
Ipython
whos
命令还提供以下信息:

X   ndarray       51x13: 663 elems, type `float64`, 5304 bytes
X
也使用一些内存来存储这样的属性,但大部分内存使用在数据缓冲区中,在本例中,数据缓冲区的长度为5304字节

h5py
可能有一些附加信息;我得检查一下文件。但这些都是基础知识

在h5py文档中,我看到数据集具有形状、大小和数据类型。我看不到nbytes或itemsize。你可能不得不推断这些


对于一个小样本文件,我得到(在Ipython会话中)


y1
是一个具有我描述的所有属性的
ndarray
<“代码>y,已卸载,没有
nbytes
,但可以从形状和DTType计算。

我没有hdf5可用。。。什么类型是
a
?在
with
子句前后添加两个提示,并使用正常的系统工具检查进程内存使用情况。标题中使用
列表
有误导性。这是一个
数组
In [262]: y
Out[262]: <HDF5 dataset "y": shape (10,), type "<i4">
In [265]: y1=f['y'][:]
y             Dataset     <HDF5 dataset "y": shape (10,), type "<i4">
y1            ndarray     10: 10 elems, type `int32`, 40 bytes