python - 大 numpy 数组的加速切片

标签 python numpy slice pytables

我有一个存储在 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/

相关文章:

python - 如何加速从具有位置 (X, Y) 和强度的点创建图像?

从列表中提取二维数组的 Pythonic 方法

python - 创建一个不需要 pythonXX.dll 的独立 windows exe

python - 网络爬虫的速度不能超过约1MB/秒

python - 如何在数据框中的同一行中添加以数字开头的字符串?

python - 为什么我不能将任意可迭代对象分配给步长为 -1 的扩展切片?

python - 将 Pandas 数据框切成两部分

python - 神经网络模型

python - 我们如何将字符串转换为 float ?

javascript - 带参数的 string.slice() 循环问题