读取多种数据类型的HDF5数据集

问题描述 投票:0回答:1

我有一个HDF5文件数据集,其中包含不同的数据类型(int和float)。

在numpy数组中读取它时,它会将其检测为np.void类型的数组。

import numpy as np
import h5py

f = h5py.File('Sample.h5', 'r')
array = np.array(f['/Group1/Dataset'])
print(array.dtype)

Image of the data types {print(array.dtype)}

如何将此数据集读入数组,每列与输入的数据类型相同?在此先感谢您的回复

hdf5 h5py
1个回答
0
投票

以下是两个简单示例,显示了使用HDF5字段/列名称切割数据集子集的两种方法。

第一种方法在访问数据集时通过切片将数据子集提取到记录数组。第二种方法遵循当前的方法。它将整个数据集提取到记录数组,然后切片新视图以访问数据的子集。

打印语句被大量使用,因此您可以看到正在发生的事情。

方法1

real_array= np.array(f['/Group1/Dataset'][:,'XR','YR','ZR'])
print(real_array.dtype)
print(real_array.shape)

方法2

cmplx_array = np.array(f['/Group1/Dataset'])
print(cmplx_array.dtype)
print(cmplx_array.shape)

disp_real = cmplx_array[['XR','YR','ZR']]
print(disp_real.dtype)
print(disp_real.shape)

查看此SO主题,了解有关将值从重新排列复制到ndarray以及返回的其他见解。

copy-numpy-recarray-to-ndarray

© www.soinside.com 2019 - 2024. All rights reserved.