将xarray DataArray与另一个DataArray切片时,索引丢失

时间:2019-05-24 12:32:44

标签: python python-xarray

请考虑以下示例。我有一个尺寸为aID的xarray coords。然后,我还有另一个尺寸为IDNodes的xarray

import xarray as xr
import numpy as np

a = xr.DataArray(np.random.rand(10, 3),
                 dims   = ('ID','Coord'),
                 coords = {'ID':    range(100,110),
                           'Coord': ['x','y','z']
                           }
                 )

b = xr.DataArray([[101, 104, 103],
                  [104, 105, 103]],
                 dims   = ('ID','Nodes'),
                 coords = {'ID':    range(1000,1002)
                           }
                 )

如果我使用a第一行中的值对b进行切片,则会获得一个新的xarray,它是a的完美切片。这意味着它将保持ID维度上的坐标,并且我可以使用xr.DataArray.loc对其进行进一步切片。

coords_b0 = a.loc[b[0].values]
print(coords_b0)
coords_b0.loc[101]

但是,如果我不对a进行切片,而对b[0]本身进行切片,则生成的xarray b[0]丢失维度coords_b0上的坐标,而使用ID会导致错误

xr.DataArray.loc

这是怎么回事?这是错误还是通缉的行为?

0 个答案:

没有答案