从 hdf5 文件中随机播放 Dask 数组块

Shuffle Dask array chunks from hdf5 file

我有一个非常大的数组存储在一个 hdf5 文件中。我正在尝试加载它并将其作为 Dask 数组进行管理。

目前我的挑战是我需要在一个过程中时不时地打乱这个数组,打乱一个大于内存的数组本身就是一个挑战。

所以我试图做的但没有成功的是洗牌 dask 数组块。

#Prepare data
f=h5py.File('Data.hdf5')
dset = f['/Data']
dk_array = da.from_array(dset, chunks=dset.chunks)

那么鉴于上面的上下文,我该如何洗牌?

如果您的数组本质上是表格形式的,那么您可以考虑添加一列随机数据(参见 da.concatenateda.random),将其转换为 dask.dataframe,然后设置它列作为索引。

作为警告,这会有点慢,因为它需要进行磁盘随机播放。