dask.array.Array.store

dask.array.Array.store

Array.store(targets: ArrayLike | Delayed | Collection[ArrayLike | Delayed], lock: bool | Lock = True, regions: tuple[slice, ...] | Collection[tuple[slice, ...]] | None = None, compute: bool = True, return_stored: bool = False, **kwargs)[源代码]

将 dask 数组存储在类似数组的对象中,覆盖目标中的数据

这会将 dask 数组存储到支持 numpy 风格 setitem 索引的对象中。它逐块存储值,因此不会占用内存。为了获得最佳性能,您可以将存储目标的块大小与数组的块大小对齐。

如果你的数据适合存储在内存中,那么你可能更倾向于调用 np.array(myarray)

参数
sources: 数组或数组集合
目标: 类数组或延迟对象或类数组和/或延迟对象的集合

这些应支持 setitem 语法 target[10:20] = ...。如果 sources 是单个项,targets 必须是单个项;如果 sources 是数组的集合,targets 必须是匹配的集合。

lock: boolean 或 threading.Lock, 可选

是否在存储时锁定数据存储。传递 True(单独锁定每个文件),False(不锁定)或特定的 threading.Lock 对象以在所有写入之间共享。

regions: 切片元组或切片元组的集合,可选

regions 中的每个 region 元组应使得 target[region].shape = source.shape 对应于 sources 和 targets 中的相应源和目标。如果这是一个元组,内容将被假定为切片,因此不要提供元组的元组。

compute: boolean, 可选

如果为真则立即计算;否则返回 dask.delayed.Delayed

return_stored: 布尔值, 可选

可选地返回存储的结果(默认 False)。

**kwargs:

传递给计算/持久化的参数(仅在 compute=True 时使用)

返回
如果 return_stored=True

数组的元组

如果 return_stored=False 且 compute=True

如果 return_stored=False 且 compute=False

延迟

示例

>>> import h5py  
>>> f = h5py.File('myfile.hdf5', mode='a')  
>>> dset = f.create_dataset('/data', shape=x.shape,
...                                  chunks=x.chunks,
...                                  dtype='f8')  
>>> store(x, dset)  

或者同时存储多个数组

>>> store([x, y, z], [dset1, dset2, dset3])