You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用xarray沿新维度拼接数组并保留原time维度

解决方案

要在xarray中实现保留time维度为12的4维数组拼接,核心是避免xarray自动合并同名的time维度,而是将每个年份对应的数组作为新维度years的独立元素堆叠:

方法1:先扩展维度再拼接

先为每个3维数组添加一个长度为1的years维度,再沿着years维度拼接:

import numpy as np
import xarray as xr

years = np.arange(1980, 2000)
# 为每个数组添加years维度
arrays_with_year = [reshape_shum[y].expand_dims(years=[y]) for y in years]
# 拼接得到4维数组
stack = xr.concat(arrays_with_year, dim='years')

方法2:使用xr.combine_nested直接堆叠

xr.combine_nested可以直接将数组列表按指定的新维度堆叠,无需手动扩展维度:

import numpy as np
import xarray as xr

years = np.arange(1980, 2000)
stack = xr.combine_nested([reshape_shum[y] for y in years], concat_dim=['years'])

两种方法最终都会得到维度为<xarray.DataArray 'q' (years: 20, time: 12, latitude: 129, longitude: 121)>的数组,和np.stack的效果一致,同时保留xarray的坐标与属性信息。

内容的提问来源于stack exchange,提问作者Reqbisha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:22:15