Xarray操作:如何向指定维度(如coord x)添加带标签的数组?
在Xarray中向指定维度添加数组的方法
要给Xarray的指定维度(比如你的x维度)添加数组并设置对应标签,最常用的方式是用xr.concat()来拼接——先把要添加的数组包装成和原数组结构匹配的DataArray,再沿着目标维度合并。下面给你一个完整的简单示例:
步骤详解 + 示例代码
1. 创建原始数组
首先我们定义一个带x和y维度的DataArray,作为你的arr:
import xarray as xr import numpy as np # 原始数组arr,x维度的标签是['a', 'b'] arr = xr.DataArray( np.array([[1, 2], [3, 4]]), dims=['x', 'y'], coords={'x': ['a', 'b'], 'y': [0, 1]} )
2. 准备要添加的数组和对应标签
假设你要添加的数组是to_add = np.array([5, 6]),对应的x维度标签是a_plus。我们需要把这个数组包装成和原数组维度匹配的DataArray:
to_add = np.array([5, 6]) # 包装成DataArray,指定x标签为'a_plus',同时匹配原数组的y维度坐标 new_entry = xr.DataArray( to_add, dims=['y'], coords={'x': 'a_plus', 'y': arr.coords['y']} )
3. 沿着x维度拼接
最后用xr.concat()把原数组和新的条目合并:
# 沿着x维度拼接,得到最终结果 result = xr.concat([arr, new_entry], dim='x') # 打印看看效果 print(result)
最终输出效果
运行上面的代码后,你会得到这样的结果:
<xarray.DataArray (x: 3, y: 2)> array([[1, 2], [3, 4], [5, 6]]) Coordinates: * x (x) <U6 'a' 'b' 'a_plus' * y (y) int64 0 1
可以看到,x维度已经新增了a_plus标签,对应的数据就是你要添加的to_add数组啦。
内容的提问来源于stack exchange,提问作者dexhunter
相关产品推荐
相关产品推荐

