【问题标题】:h5py selective read inh5py 选择性读入
【发布时间】: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 文件进行一些就地操作,因此它或许可以做到这一点。

标签: numpy hdf5 h5py


【解决方案1】:

你可以使用:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-14
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 2017-06-10
    • 2016-01-23
    相关资源
    最近更新 更多