Как сохранить порядок измерений при использовании groupby в наборе данных xarray - PullRequest
0 голосов
/ 05 октября 2019

Когда я группирую набор данных xarray, он переупорядочивает измерения, есть ли способ избежать этого переупорядочения?

Например,

import xarray as xr

ds = xr.Dataset({'foo': (('y', 'x'), np.random.rand(4, 3))}, 
        coords={'y' : [10, 20, 30, 40], 
                'x' : list('abb')  })

ds['foo'].groupby('x').sum(dim='x')     #This is a xarray DataArray groupby
ds.groupby('x').sum(dim='x')['foo']     #This is a xarray Dataset groupby

выводит

#DataArray
ds['foo'].groupby('x').sum(dim='x')
<xarray.DataArray 'foo' (y: 4, x: 2)>
array([[0.289544, 1.767456],
       [0.169652, 1.050738],
       [0.09774 , 1.62232 ],
       [0.577578, 1.238177]])
Coordinates:
  * y        (y) int32 10 20 30 40
  * x        (x) object 'a' 'b'

#Dataset
ds.groupby('x',restore_coord_dims=True).sum(dim='x')['foo']
<xarray.DataArray 'foo' (x: 2, y: 4)>
array([[0.289544, 0.169652, 0.09774 , 0.577578],
       [1.767456, 1.050738, 1.62232 , 1.238177]])
Coordinates:
  * y        (y) int32 10 20 30 40
  * x        (x) object 'a' 'b'

Игра с «restore_coord_dims = True» (как в коде ниже) не устранила проблему.

ds.groupby('x',restore_coord_dims=True).sum(dim='x')['foo']
...