我有一个存储在 pyTables 文件中的大数组 ( 1000x500000x6 )。我正在对其进行一些计算,这些计算在速度方面得到了相当优化,但花费最多时间的是数组切片。
在脚本的开头,我需要获取行的子集:reduced_data = data[row_indices, :, :] 然后,对于这个缩减的数据集,我需要访问:
- 一列一列:reduced_data[:,clm_indice,:]
- 列的子集:reduced_data[:,clm_indices,:]
获取这些数组需要很长时间。有什么办法可以加快速度吗?例如以不同方式存储数据?
请您参考如下方法:
您可以尝试明智地选择数组的 chunkshape,请参阅:http://pytables.github.com/usersguide/libref.html#tables.File.createCArray 此选项控制数据在文件中的物理存储顺序,因此可能有助于加快访问速度。
运气好的话,对于您的数据访问模式,chunkshape=(1000, 1, 6) 可能会起作用。
