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])