Pytables读CArray非常慢

时间:2014-04-16 13:42:10

标签: arrays pytables chunked

我通过以下方式创建了一个分块数组:

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]

它需要...... 22秒!

我做错了什么吗?在这种情况下如何加快阅读速度?

1 个答案:

答案 0 :(得分:0)

尝试将chunkshape更改为最外层的轴而不是最里面的轴。例如,chunkshape=(1, 256, 256, 6, 6)。这样做会在我的机器上以0.474秒的速度执行第二个脚本。