如何解决如何计算沿时间轴重复次数最多的值的出现次数? - Xarray 蟒蛇
在 xarray 数据集中,如何计算沿时间轴重复值的数量?更详细地说,我想确定每对(纬度,经度)坐标,随着时间的推移出现最多重复值的次数。我试过使用 xr.count(dim='time')
但它计算所有迭代,我不知道如何指定我只对最重复的值感兴趣。
小例子:
array([[[10.,10.,1.,2.,3.,2.]]],dtype=float32)
Coordinates:
* time (time) int32 2013 2014 2016 2017 2018 2019 2020
* lat (lat) float64 -13.64
* lon (lon) float64 -55.11
Out: 3
谢谢!
解决方法
我认为没有 xarray 或 numpy 运算符可以直接执行此操作。
但是,您可以使用 values = np.unique(da)
找到每个唯一值。
然后对于每个唯一值,使用以下内容计算其出现次数:
possible_values = np.unique(da)
acc = []
for val in possible_values:
acc.append( { "value": val,"count": (ds.tmax==val).sum() })
index_of_max = np.argmax(list(map(lambda x: x["count"],acc)))
max = acc[index_of_max]
但我认为它可能有点资源密集型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。