如何统计时间轴上重复次数最多的值出现的次数? - X 数组 python

How to count the number of occurrences of the most repeated value along the time axis? - Xarray 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

谢谢!

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

但我认为它可能会占用一些资源。