Python 如何将填充元组的一维h5py数组状对象转换为二维Dask数组?
我正在尝试从hdf5文件读取数据集。h5py数据句柄的格式为1d数组Python 如何将填充元组的一维h5py数组状对象转换为二维Dask数组?,python,dask,h5py,Python,Dask,H5py,我正在尝试从hdf5文件读取数据集。h5py数据句柄的格式为1d数组 with h5py.File(files[0], 'r') as f: flux = f['/nsae'] print(flux.shape) print(flux[:5]) 我希望最终得到一个3d dask阵列: [[b'2018-02-01T00:00:00.000Z', b'2018-02-01T00:29:59.000Z', 4.95551669]
with h5py.File(files[0], 'r') as f:
flux = f['/nsae']
print(flux.shape)
print(flux[:5])
我希望最终得到一个3d dask阵列:
[[b'2018-02-01T00:00:00.000Z', b'2018-02-01T00:29:59.000Z', 4.95551669]
[b'2018-02-01T00:30:00.000Z', b'2018-02-01T00:59:59.000Z', 1.65919189]
[b'2018-02-01T01:00:00.000Z', b'2018-02-01T01:29:59.000Z', 0.88306412]
[b'2018-02-01T01:30:00.000Z', b'2018-02-01T01:59:59.000Z', 0.97632175]
[b'2018-02-01T02:00:00.000Z', b'2018-02-01T02:29:59.000Z', 0.9270446]
...]
最有效的方法是什么?
最终,我将把来自许多类似文件的数据(以及来自一些csv文件的数据)放入dask数据帧中,连接到单个数据帧中,然后保存为一个新的hdf5。如果有必要,我愿意跳过阵列阶段。hdf5数据集的数据类型是什么?数据集以元组列表的形式返回是不寻常的……类型是“|V58”,这似乎是原始数据(void)。从
打印(flux.dtype)
?看起来arr=flux[:5]
是一个1d 5元素结构数组,包含3个字段。2是可以转换为np.datetime64
的字节字符串,第三个是float。我不知道dask
是否能处理numpy
结构化数组(复合数据类型)。它当然不会是3d的。print(flux.dtype)
给出了[('timeBgn','S25'),('timeEnd','S25'),('flux','
[[b'2018-02-01T00:00:00.000Z', b'2018-02-01T00:29:59.000Z', 4.95551669]
[b'2018-02-01T00:30:00.000Z', b'2018-02-01T00:59:59.000Z', 1.65919189]
[b'2018-02-01T01:00:00.000Z', b'2018-02-01T01:29:59.000Z', 0.88306412]
[b'2018-02-01T01:30:00.000Z', b'2018-02-01T01:59:59.000Z', 0.97632175]
[b'2018-02-01T02:00:00.000Z', b'2018-02-01T02:29:59.000Z', 0.9270446]
...]