提问人:Nihilum 提问时间:7/7/2023 更新时间:7/7/2023 访问量:27
将 xarray 变量转换为用于 svd 计算的 dask 数组
Convert an xarray variable to a dask array for svd computation
问:
我有一个分块数据集,它有一个又高又瘦的变量。 我想计算它的 SVD,但据我所知,xarray 不会在块上这样做。块很重要,否则 SVD 计算会使我的 RAM 过载。
有没有办法将数据集的变量(分块)转换为一个以应用?dask.array.Array
dask.array.linalg.svd()
如果我在 dask svd 函数中输入我的数据集,我会收到错误:ds
AttributeError: 'DataArray' object has no attribute 'numblocks'
生成数据集的示例代码:
import xarray as xr
import numpy as np
import dask.array as da
time = np.arange(200)
space = np.arange(700000)
data = np.random.rand(200, 700000) # Generating random data
# Create the xarray dataset
ds = xr.Dataset(
{"variable": (("time", "space"), data)},
coords={"time": time, "space": space},
).chunk({'time':-1, 'space':100000})
答: 暂无答案
评论