【发布时间】:2013-07-13 19:42:05
【问题描述】:
我在使用 h5py 时遇到了关于选择性读取例程的问题。
f = h5py.File('file.hdf5','r')
data = f['Data']
我在“数据”数据集中有几个正值,还有一些带有 -9999 的占位符。
我如何才能获得像np.min 这样的计算的所有正值?
np.ma.masked_array 创建数组的完整副本,使用 h5py 的所有好处都丢失了……(关于内存使用)。问题是,如果我尝试使用 data = f['Data'][:,0] 读取每个数据集超过 1 亿个值的数据集时会出错
或者,如果这是不可能的,那么可能吗?
np.place(data[...], data[...] <= -9999, float('nan'))
提前致谢
【问题讨论】:
-
你检查过 pytables 吗?与 h5py 不同的是,它可以对 hdf5 文件进行一些就地操作,因此它或许可以做到这一点。