首页 > 解决方案 > 如何通过在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)

我想将其拆分255x5以便获得以下形式的 3D 形状:(5, 5, 6).

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

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

更新:

np.split(da, 5)我设法用我需要的数据在里面创建了一个5秒listxarray我该如何进行这一步,但不是转换为list,而是保持为xarray,但它有一个额外的维度?

标签: pythonpython-3.xpython-xarray

解决方案


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

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

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


推荐阅读