Python Xarray,按索引或维度排序?

Ray*_*Ray 5 python python-xarray

是否有一个sort_index或sort_by_dimension某种方法xarray,很像pandas.DataFrame.sort_index(),在那里我可以排序xarray.DataArray通过其尺寸的目的之一?在使用方面,我在想类似的东西data_array.sort(dim="dimension_name").

Kyl*_*ton 4

我找不到一个好的方法来做到这一点xarray,所以我通过从我想要排序的坐标中取出一个带有排序值的切片来创建一个新数组:da_sorted=da.loc[{'lon':sorted(da.coords['lon'].values)}]

这是一个更大的示例,其中的测试数据显示了实际情况:

import numpy as np
import xarray as xr

data = np.random.rand(2, 3)

lat = [47, 45]

lon = [-118, -122, -120]
da = xr.DataArray(data, coords=[lat, lon], dims=['lat', 'lon'])


>>>> da
<xarray.DataArray (lat: 2, lon: 3)>
array([[ 0.16118 ,  0.215621,  0.599749],
       [ 0.144778,  0.984167,  0.416469]])
Coordinates:
  * lat      (lat) int64 47 45
  * lon      (lon) int64 -118 -122 -120,


da_sorted = da.loc[{'lon':sorted(da.coords['lon'].values)}]
>>>> da_sorted
<xarray.DataArray (lat: 2, lon: 3)>
array([[ 0.215621,  0.599749,  0.16118 ],
       [ 0.984167,  0.416469,  0.144778]])
Coordinates:
  * lat      (lat) int64 47 45
  * lon      (lon) int64 -122 -120 -118
Run Code Online (Sandbox Code Playgroud)