如何计算沿时间轴重复次数最多的值的出现次数?沙雷Python

2024-10-03 23:17:52 发布

您现在位置:Python中文网/ 问答频道 /正文

在xarray数据集中,如何计算沿时间轴重复的值的数量?更详细地说,我想为每对(lat,lon)坐标确定一段时间内重复次数最多的值的出现次数。我尝试过使用xr.count(dim='time'),但它计算所有迭代次数,我不知道如何指定我只对重复次数最多的值感兴趣

小例子:

array([[[10., 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

谢谢


Tags: 数据数量timecount次数array感兴趣例子
1条回答
网友
1楼 · 发布于 2024-10-03 23:17:52

我认为没有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]

但我认为它可能有点资源密集型

相关问题 更多 >