Skip to main content
 首页 » 编程设计

python之大 numpy 数组的加速切片

2025年05月04日8lyj

我有一个存储在 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) 可能会起作用。