Coordinates xarray为非NaN的变量值获取最高坐标

Coordinates xarray为非NaN的变量值获取最高坐标,coordinates,nan,python-xarray,highest,Coordinates,Nan,Python Xarray,Highest,是否有一种矢量化方法可以从空气中提取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]

是否有一种矢量化方法可以从空气中提取
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

尺寸:()
数据变量:
国际航空64 6
风浮标647.0

但我不希望它循环遍历每个变量并使用dropna(dropna对于大数组需要很长时间),因此我想知道是否有替代方法。

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