XArray 有像 argmax 这样的函数用于分位数统计吗?

问题描述 投票:0回答:1

使用 xarray.quantile 时有没有办法保留坐标?

我正在获取带有纬度、经度和时间坐标的数据集的(第 90 个百分位数)分位数。 我想要数据值处于这个分位数的时间。

我运行命令 Data.quantile([.90],dim='time') 删除“时间”坐标并将其替换为“分位数” 有没有办法保留坐标信息并执行分位数运算?

有一个参数“keep_attrs”,但我还没有找到任何关于保留坐标的内容。 我想要像 xarray.DataArray.argmax 这样的东西

python coordinates python-xarray quantile argmax
1个回答
0
投票

您可以使用

.where()
根据
.quantile()
进行过滤:

给定一个 xarray DataArray

da
:

>>> da
<xarray.DataArray (time: 100)>
array([-1.11006507e+00, -4.41380179e-01,  1.10087254e+00,  2.18218427e-01,
       ...-5.51287030e-01])
Coordinates:
  * time     (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2000-04-09

>>> da.where(da > da.quantile(0.9, "time"), drop=True)
<xarray.DataArray (time: 10)>
array([1.84009741, 2.25750906, 1.62780955, 1.55448247, 2.11139034,
       2.17723193, 3.11637597, 1.26926648, 1.49876131, 1.55716718])
Coordinates:
  * time      (time) datetime64[ns] 2000-01-12 2000-01-17 ... 2000-04-03
    quantile  float64 0.9
© www.soinside.com 2019 - 2024. All rights reserved.