如何通过在 python xarray 中添加一个额外的维度来将一个数组拆分为多个数组?

How to split one array in multiple arrays by adding an extra dimension in python xarray?

我有以下 xarray:

import xarray as xr
import numpy as np
import pandas as pd

da = xr.DataArray(np.random.rand(25, 6),
                   [('time', pd.date_range('2000-01-01', periods=25)),
                    ('space', ['IA', 'IL', 'IN', 'VA', 'VL', 'VN'])])

其中 da.shape 产生 (25, 6).

我想将 25 拆分为 5x5 以便我得到以下形式的 3D 形状:(5, 5, 6).

老实说,我不知道从哪里开始。我查阅了文档,但找不到任何解决方案。我知道我只寻求矢量化解决方案(即没有循环和 list.append() 东西,因为否则成本太高。

你能帮我解决这个问题吗?

更新:

使用 np.split(da, 5) 我设法在里面创建了一个 list 的 5 xarrays,其中包含我需要的数据。我如何完成这一步,而不是转换为 list,它保持 xarray,但它有一个额外的维度?

我找到的解决方案是使用 np.resize:

da_new = np.resize(da, (5,5,6))

其中(如预期)da_new.shape 产生 (5, 5, 6)。这也相对较快。