我有一个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字段/列名称切割数据集子集的两种方法。
第一种方法在访问数据集时通过切片将数据子集提取到记录数组。第二种方法遵循当前的方法。它将整个数据集提取到记录数组,然后切片新视图以访问数据的子集。
打印语句被大量使用,因此您可以看到正在发生的事情。
方法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以及返回的其他见解。