我有一个存储在 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)
可能会起作用。
关于python - 大 numpy 数组的加速切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604780/