3

我在使用 h5py 时遇到了关于选择性读入例程的问题。

f = h5py.File('file.hdf5','r')
data = f['Data']

我在“数据”数据集中有几个正值,还有一些带有 -9999 的占位符。我如何才能获得所有计算的正值,例如np.min

np.ma.masked_array 创建了数组的完整副本,使用 h5py 的所有好处都丢失了……(关于内存使用)。问题是,如果我尝试使用每个数据集读取超过 1 亿个值的数据集,则会出现错误data = f['Data'][:,0]

或者,如果这是不可能的,那么可能吗?

np.place(data[...], data[...] <= -9999, float('nan'))

提前致谢

4

1 回答 1

1

你可以使用:

mask = f['Data'] >= 0
data = f['Data'][mask]

虽然我不确定掩码计算本身使用了多少内存。

于 2014-02-26T11:20:51.947 回答