Python xarray DataArray.sel返回最初未分配给数据的坐标

Python xarray DataArray.sel返回最初未分配给数据的坐标,python,python-xarray,Python,Python Xarray,我有一个存储在xarray数据数组中的多元数据集。我想选择DataArray的一部分并删除我选择的coords集合中不包含的coords。例如: ar1 = xr.DataArray(np.random.random((5,3,3)), coords={'range':np.arange(0,5), 'vars':['var1','var2','var3'], 'axes':['ax1','ax2','ax3']}, dim

我有一个存储在xarray数据数组中的多元数据集。我想选择DataArray的一部分并删除我选择的coords集合中不包含的coords。例如:

ar1 = xr.DataArray(np.random.random((5,3,3)),
                  coords={'range':np.arange(0,5), 'vars':['var1','var2','var3'], 'axes':['ax1','ax2','ax3']},
                  dims=['range', 'vars', 'axes'],
                  name='ar1' )
ar2 = xr.DataArray(np.random.random((5,1,2)),
                  coords={'range':np.arange(0,5), 'vars':['var4'],'labels':['l1','l2']},
                  dims=['range', 'vars', 'labels'],
                  name='ar2' )

dar = ar1.combine_first(ar2)
dar = dar.sel({'vars':['var1','var2','var3'], 'axes':['ax1','ax2','ax3']}, drop=True)
dar
DataArray.sel
产生以下结果:

    <xarray.DataArray 'ar1' (range: 5, vars: 3, axes: 3, labels: 2)>
    array([[[[0.38942957, 0.38942957],
             [0.45528695, 0.45528695],
             [0.49853459, 0.49853459]],
             ...
            [[0.67717998, 0.67717998],
             [0.89777309, 0.89777309],
             [0.47580058, 0.47580058]]]])
    Coordinates:
      * vars     (vars) object 'var1' 'var2' 'var3'
      * range    (range) int64 0 1 2 3 4
      * axes     (axes) <U3 'ax1' 'ax2' 'ax3'
      * labels   (labels) <U2 'l1' 'l2'

如果不想合并坐标,为什么要先使用
combine_
xr.merge
是否执行所需操作?这是一个生成与我正在处理的数据集相似的数据集的示例。最后,我希望只在数据的选定部分执行操作,而不从每个组件重新创建DataArray查看
dar
,然后
sel
显示它确实有标签维度上的数据。您的问题是如何以不同方式组合
ar1
ar2
,还是如何从
dar
中选择一些数据子集;如何在没有标签的情况下从
dar
选择数据是
dar
上的一个维度!i、 e.它是5x3x2,其中2为标签尺寸。“选择不带标签”是什么意思?也许会显示你的预期结果?
   <xarray.DataArray 'ar1' (range: 5, vars: 3, axes: 3)>
    array([[[[0.38942957, 0.38942957],
             [0.45528695, 0.45528695],
             [0.49853459, 0.49853459]],
             ...
            [[0.67717998, 0.67717998],
             [0.89777309, 0.89777309],
             [0.47580058, 0.47580058]]]])
    Coordinates:
      * vars     (vars) object 'var1' 'var2' 'var3'
      * range    (range) int64 0 1 2 3 4
      * axes     (axes) <U3 'ax1' 'ax2' 'ax3'