美文网首页
h5py 将 mat 数据集中的 <HDF5 object

h5py 将 mat 数据集中的 <HDF5 object

作者: 谢小帅 | 来源:发表于2018-12-22 15:28 被阅读108次
import h5py
import csv

data = h5py.File('/home/disk1/xs/nyu_depth_v2_labeled.mat')
print(data.keys())

names = data['names']
print(names)  # <HDF5 dataset "names": shape (1, 894), type "|O">
print(names.shape)  # (1, 894)
print(names.dtype)  # object

print(names[0][0])  # <HDF5 object reference>
print(data[names[0][0]])  # <HDF5 dataset "FFb": shape (4, 1), type "<u2">

注: type "<u2"> 是 uint16 的缩写,使用 chr 函数将其转成对应字符

转成 string 并存入 csv 文件

import h5py
import csv

data = h5py.File('/home/disk1/xs/nyu_depth_v2_labeled.mat')
names = data['names']

with open('name.csv', 'w') as f:
    writer = csv.writer(f)
    for i in range(names.shape[1]):
        # name = ''.join([chr(v[0]) for v in data[names[0][i]].value])
        # .value 这种方法已经废弃了
        name = ''.join([chr(v[0]) for v in data[(names[0][i])]])
        writer.writerow([i, name])

相关文章

网友评论

      本文标题:h5py 将 mat 数据集中的 <HDF5 object

      本文链接:https://www.haomeiwen.com/subject/hhbikqtx.html