У меня есть многомерный набор данных, хранящийся в xarray DataArrays. Я хотел бы выбрать часть DataArray и удалить координаты, которые не содержатся в наборе координат, которые я выбираю. Например:
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'
Но var1, var2, var3
не имеет координаты labels
. Как мне избавиться от лишних координат, сохраняющих структуру данных выбранной детали?
Любое предложение приветствуется.
ОБНОВЛЕНИЕ : Требуемый вывод
<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'