gpt4 book ai didi

python - h5py:压缩管道中的复合数据类型和比例偏移

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:59 25 4
gpt4 key购买 nike

使用 Numpy 和 h5py,可以创建要存储在 hdf5 文件中的“复合数据类型”数据集:

import h5py
import numpy as np
#
# Create a new file using default properties.
#
file = h5py.File('compound.h5','w')
#
# Create a dataset under the Root group.
#
comp_type = np.dtype([('fieldA', 'i4'), ('fieldB', 'f4')])
dataset = file.create_dataset("comp", (4,), comp_type)

还可以在“压缩管道”中使用各种压缩过滤器,其中包括“scale-offset”过滤器:

cmpr_dataset = file.create_dataset("cmpr", (4,), 'i4', scaleoffset=0)

但是,我不清楚是否以及如何为 a 的不同字段指定具有特定参数(例如上例中的 0)的比例偏移过滤器。复合数据类型。

更一般地说,我不清楚是否以及如何将任何过滤器与特定于字段的参数一起应用。

所以,问题是:

  • 是否可以仅将过滤器应用于复合数据类型数据集,或使用特定参数应用于特定字段?

  • 如果是,从语法角度来看如何做到这一点?

我的猜测(担心)是复合数据存储方式的本质(在一个“列”中,而不是每个字段在其自己的“列”中)将禁止应用此类特定于字段的过滤器,但我想检查,只是为了确定。

最佳答案

除了 h5py 文档,请查看 hdf5 文档。他们会更详细地介绍。如果底层文件系统不支持这一点,那么 numpy 接口(interface)也不支持。

https://support.hdfgroup.org/HDF5/doc/UG/OldHtmlSource/10_Datasets.html#ScaleOffset

其他地方说过滤器应用于整个 block 。

定义复合类型的表达式是纯numpyh5py 必须将其描述符转换为等效的 hdf5 c-struc 描述。有示例 c 和 fortran 复合类型定义。

所有文档都说此偏移仅适用于整数和浮点类型。可以理解为排除 string、vlen 和compound。您希望它仍然适用于复合类型内的数字类型。我不这么认为。

关于python - h5py:压缩管道中的复合数据类型和比例偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40784482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com