gpt4 book ai didi

python - 是否可以序列化包含指向文件的惰性 dask 数组数据的 xarray DataArray?

转载 作者:行者123 更新时间:2023-12-01 06:42:36 26 4
gpt4 key购买 nike

我已经从多个源 hdf5 文件构建了一个巨大的 dask 数组。

假设数据仅来自一个 hdf5 文件:

import dask.array as da
import h5py
import xarray as xr

h5_data = h5py.File(path_to_file, "r")
dask_arr = da.from_array(h5_data, chunks=chunksize)

然后我将该 dask 数组中的(惰性)切片排列到 xarray 数据集中

xr_data = xr.DataArray(dask_arr[0:1000])
# Note: In reality, xr_data and dask[0:1000] aggregation is much more complex and needs quite long to process

现在我想序列化 xr_data 对象,这样我就不需要每次都计算它。

xarray DataArray 中的数据通过 dask 延迟映射到 hdf5 文件。如何序列化(pickle?netcdf?...)以便能够在“惰性映射”持续存在时重新加载 xarray 对象?

谢谢你们!

最佳答案

一般来说,您应该能够做到这一点。 Dask 和 Xarray 对象都是可picklable的。这会将图形序列化为字节,然后您可以将其写入文件中。

但是,在您的特定情况下,该图包含 h5py.Dataset 对象,不幸的是这些对象不可序列化。

xarray open_dataset 方法通过多种方式解决了这个问题。如果您可以将它们与各种 concat 调用一起使用,那么我认为这可能是您最好的选择,而不是直接使用 h5py.Dataset 对象。

关于python - 是否可以序列化包含指向文件的惰性 dask 数组数据的 xarray DataArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59378903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com