首页 > 解决方案 > 如何在带有坐标的 xarray 数据集中找到前 10 个值?

问题描述

我使用了这种语法,它有助于找到数据集的最大值以及它们所在的坐标:da.where(da==da.max(), drop=True).squeeze()

有没有这样的方法可以找到数据集的前 10 个值/第 90 个百分位数以及它们所在的坐标?

谢谢

标签: pythonpython-xarray

解决方案


我认为使用.quantile()xarray 中的功能是最简单的。这本质上只是该.reduce()方法的一个包装器,适用于使用该np.nanpercentile()函数减少数组的情况。

例如在你的情况下:

da.quantile([5, 95], dim='time', interpolation='linear')

因为这个问题有点模糊,我假设你在time维度上取分位数。插值是您可以玩的东西,但如果有疑问,我使用linearor lower

对于您问题的第二部分,如果您确定 DataArray 中没有重复值,那么您可以使用该.where()方法来查找数据与这些百分位数匹配的位置,否则我不确定是否有简单的方法做这个?

在这里阅读更多:http: //xarray.pydata.org/en/stable/generated/xarray.DataArray.quantile.html

对于一些开发历史: https ://github.com/pydata/xarray/issues/561

干杯! :)


推荐阅读