我开发了一个模型,它使用几个大型 3 维数据集(按 (1e7, 10, 1e5) 的顺序),并对这些数据集的切片进行数百万次读取(和数千次写入)调用。到目前为止,我发现用于进行这些调用的最佳工具是 numpy.memmap,它允许在 RAM 中保存最少的数据,并允许干净的索引和直接在硬盘驱动器上非常快速地调用数据。numpy.memmmap 的缺点似乎是性能相当不均匀 - 读取数组切片的时间在调用之间可能会相差 2 个数量级。此外,我使用 Dask 并行化脚本中的许多模型函数。Dask DataFrames 对大型数据集进行数百万次调用的性能如何?将 memmap 替换为 DataFrame 会显着增加处理时间吗?
1 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
您需要使用 Dask Array 而不是 Dask Dataframe。性能通常与 Numpy 相同,因为 Numpy 执行实际计算。
根据用例,优化可以加快计算速度。
调度程序的开销会降低性能。这仅适用于将数据拆分为多个分区的情况,并且通常可以忽略。
- 1 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消