堆栈 xarray DataArray

Stack xarray DataArray

我有 N 个 1D xr.DataArray,有 1 个 array 坐标 b 和 1 个 scalar 坐标 a。我想将它们组合成具有 array 坐标 ba 的 2D DataArray。这个怎么做?我试过:

x1 = xr.DataArray(np.arange(0,3)[...,np.newaxis], coords=[('b', np.arange(3,6)),('a', [10])]).squeeze()
x2 = xr.DataArray(np.arange(0,3)[...,np.newaxis], coords=[('b', np.arange(3,6)),('a', [11])]).squeeze()

xcombined = xr.concat([x1, x2])
xcombined

结果:

<xarray.DataArray (concat_dims: 2, b: 3)>
array([[0, 1, 2],
       [0, 1, 2]])
Coordinates:
  * b        (b) int64 3 4 5
    a        (concat_dims) int64 10 11
Dimensions without coordinates: concat_dims

现在我特别喜欢select一个'a':

xcombined.sel(a=10)

但是,这引发了:

ValueError: dimensions or multi-index levels ['a'] do not exist

如果您将 dim 提供给 concat,这有效:

xcombined = xr.concat([x1, x2], dim='a')

然后:

xcombined.sel(a=10)

<xarray.DataArray (b: 3)>
array([0, 1, 2])
Coordinates:
  * b        (b) int64 3 4 5
    a        int64 10