我有一个大的数据集存储为压缩的npy文件。如何将给定的子集堆叠到Dask数组中?
我知道dask.array.from_npy_stack
,但我不知道如何使用它。
这是一个粗糙的第一次尝试,耗尽了我所有的记忆:
import numpy as np
import dask.array as da
data = np.load('data.npz')
def load(files):
list_ = [da.from_array(data[file]) for file in files]
return da.stack(list_)
x = load(['foo', 'bar'])
好吧,你不能将一个大的npz文件加载到内存中,因为这样你就已经没有内存了。我会以延迟的方式读取每一个,然后调用da.from_array和da.stack,就像你在示例中一样。
如果你以前没有看过,以下是一些可能会有所帮助的文档:https://docs.dask.org/en/latest/array-creation.html#using-dask延迟