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

标签 python python-xarray

xarray 中是否有某种sort_indexsort_by_dimension 方法,很像pandas.DataFrame.sort_index(),我可以在其中按其维度之一对 xarray.DataArray 对象进行排序?在用法方面,我正在考虑像 data_array.sort(dim="dimension_name") 这样的东西。

最佳答案

我找不到在 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

关于Python Xarray,按索引或维度排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40636283/

相关文章:

python-3.x - 提取几何(形状)内的数据

python - 如何使用 xarray 沿时间维度扩展数据变量?

python - 透明的 3D 条形图

python - 如何在anaconda中获取opencv_contrib模块

python - 用键值和没有对应值的python初始化字典

从配置文件中读取 Pythonic

python - xarray 广播如何与 numpy 函数配合使用?

python - 根据上面的行创建新的数据框行

python - 这是什么意思? xarray 错误 : cannot handle a non-unique multi-index

python - 不同大小数组的逐元素运算