首先,我阅读了主题“用 Python 编写 hdf5 文件的最快方法? ”,但它不是很有帮助。
我正在尝试在 h5f5 结构中加载大约 1GB 的文件(大小为 (70133351,1) 的矩阵)。
很简单的代码,但是很慢。
import h5py
f = h5py.File("8.hdf5", "w")
dset = f.create_dataset("8", (70133351,1))
myfile=open("8.txt")
for line in myfile:
line=line.split("\t")
dset[line[1]]=line[0]
myfile.close()
f.close()
我有一个 50MB 的较小版本的矩阵,我尝试了相同的代码,但 24 小时后仍未完成。
我知道让它更快的方法是避免“for循环”。如果我使用的是常规 python,我会使用哈希理解。不过,这里好像不适合。
我可以稍后通过以下方式查询文件:
f = h5py.File("8.hdf5")
h=f['8']
print 'GFXVG' in h.attrs
考虑到 GFXVG 在 h 中的键上,这会回答我“真”
有人有什么想法吗?
部分文件示例:
508 LREGASKW
592 SVFKINKS
1151 LGHWTVSP
131 EAGQIISE
198 ELDDSARE
344 SQAVAVAN
336 ELDDSARF
592 SVFKINKL
638 SVFKINKI
107 PRTGAGQH
107 PRTGAAAA
谢谢