找到满足条件的 xarray 索引

find xarray indices where conditions are satisfied

我想获取满足某些条件的 xarray 数据数组的索引。相关线程 中提供的关于如何找到最大值位置的答案对我也不起作用。就我而言,我也想找出其他类型条件的位置,而不仅仅是最大值。这是我尝试过的:

h=xr.DataArray(np.random.randn(3,4))
h.where(h==h.max(),drop=True).squeeze()

# This is the output I got:
<xarray.DataArray ()>
array(1.66065694)

这不是 return 我链接到的示例中显示的位置,即使我正在执行相同的命令。不知道为什么。

我更新了链接示例以更清楚地显示索引。因为 xarray 不再添加默认索引,所以前面的示例找到最大位置但不显示索引。复制如下:

In [17]: da = xr.DataArray(
             np.random.rand(2,3), 
             dims=list('ab'), 
             coords=dict(a=list('xy'), b=list('ijk'))
         )

In [18]: da.where(da==da.max(), drop=True).squeeze()
Out[18]:
<xarray.DataArray ()>
array(0.96213673)
Coordinates:
    a        <U1 'x'
    b        <U1 'j'