xarray获得不是NaN的变量值的最高坐标

问题描述 投票:1回答:1

是否有矢量化的方法可以从空气中提取6,从风中提取7

ds = xr.merge([
    xr.DataArray([3, 5, 6], coords={'init': [0, 1, 2]}, dims='init', name='air'),
    xr.DataArray([8, 7, np.nan], coords={'init': [0, 1, 2]}, dims='init', name='wind')
])

循环方法是:

xr.merge([
    ds[var]
    .dropna('init', how='all')
    .isel(init=-1)
    .drop('init')
    for var in ds.data_vars
])

返回:

<xarray.Dataset>
Dimensions:  ()
Data variables:
    air      int64 6
    wind     float64 7.0

但是我不希望它循环遍历每个变量并使用dropna(dropna对于大型数组需要很长时间),所以我想知道是否还有其他选择。

coordinates nan python-xarray highest
1个回答
0
投票

我认为最直接的解决方案是向前填充:ds.ffill('init').isel(init=-1)

© www.soinside.com 2019 - 2024. All rights reserved.