我想获取满足某些条件的 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)
Run Code Online (Sandbox Code Playgroud)
即使我正在执行相同的命令,这也不会返回我链接到的示例中所示的位置。我不知道为什么。
我更新了链接的示例以更清楚地显示索引。由于 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'
Run Code Online (Sandbox Code Playgroud)