python - 如何在带有坐标的 xarray 数据集中找到前 10 个值?
问题描述
我使用了这种语法,它有助于找到数据集的最大值以及它们所在的坐标:da.where(da==da.max(), drop=True).squeeze()
有没有这样的方法可以找到数据集的前 10 个值/第 90 个百分位数以及它们所在的坐标?
谢谢
解决方案
我认为使用.quantile()
xarray 中的功能是最简单的。这本质上只是该.reduce()
方法的一个包装器,适用于使用该np.nanpercentile()
函数减少数组的情况。
例如在你的情况下:
da.quantile([5, 95], dim='time', interpolation='linear')
因为这个问题有点模糊,我假设你在time
维度上取分位数。插值是您可以玩的东西,但如果有疑问,我使用linear
or lower
。
对于您问题的第二部分,如果您确定 DataArray 中没有重复值,那么您可以使用该.where()
方法来查找数据与这些百分位数匹配的位置,否则我不确定是否有简单的方法做这个?
在这里阅读更多:http: //xarray.pydata.org/en/stable/generated/xarray.DataArray.quantile.html
对于一些开发历史: https ://github.com/pydata/xarray/issues/561
干杯! :)
推荐阅读
- mysql - 选择所有日期的计数小于值的行
- toml - 在 TOML 文件上创建新行
- sql-server - MS SQL Server 2016 - 如何记录记录锁定问题?
- html - 如何在我们的网站中将亚马逊网站 iframe
- c - C中fopen方法的参数无效错误
- css - 如何从父组件应用 CSS?
- javascript - 如何在应用内浏览器中使用“beforeinstallprompt”
- performance - 如何在 docker 中处理 haproxy 的 cpu 配置?
- arrays - 将存储在 React State 中的对象转换为数组
- python - 从源代码编译 python 3.8.7、numpy 1.19 和 scipy 而不使用 lapack、blas