Python 我的列表使用了多少内存?
我通过以下方式将hdf5数据集读入内存: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
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
Ipythonwhos
命令还提供以下信息:
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