我通过以下方式创建了一个分块数组:
import tables
FILTERS = tables.Filters(complib='lzo', complevel=1)
h5file = tables.openFile('file.h5', mode='w', filters=FILTERS)
x = h5file.createCArray(h5file.root,'chunk_array',tables.Float64Atom(),
shape=(256, 256, 256, 6, 6),
chunkshape = (256, 256, 256, 1, 1))
fill x by some value
h5file.close()
但是当我读到这个文件时,pytables花了很多时间:
FILTERS = tables.Filters(complib='lzo', complevel=1)
E5F = tables.open_file('file.h5', mode='r', filters=FILTERS)
carray = E5F.root.chunk_array[0, 0, 0]
我做错了什么吗?在这种情况下如何加快阅读速度?
答案 0 :(得分:0)
尝试将chunkshape更改为最外层的轴而不是最里面的轴。例如,chunkshape=(1, 256, 256, 6, 6)
。这样做会在我的机器上以0.474秒的速度执行第二个脚本。