You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用xarray实现跨年度(6月至次年5月)的年平均计算?

跨年度(6月-次年5月)平均的单行实现

当然有!你只需要调整分组的年份标识逻辑,就能用一行简洁的代码实现这个跨年度平均计算,和你原来的日历年平均代码风格保持一致:

sst_JUN_MAY = ds['sst'].groupby((ds['time.month'] >= 6) + ds['time.year']).mean(dim='time')

代码逻辑解释:

  • ds['time.month'] >= 6会生成一个布尔数组,6-12月为True(数值上等价于1),1-5月为False(数值上等价于0)
  • 把这个布尔数组和ds['time.year']相加后,6-12月的年份会被加1,1-5月保持原年份
  • 这样分组后,每个年份组就自动包含了前一年6月到当年5月的所有数据,完美匹配你要的跨年度统计周期

如果你希望分组的年份标签更直观(比如2000年的组明确对应1999年6月-2000年5月),也可以用xr.where来更清晰地定义分组键,写成一行也没问题:

sst_JUN_MAY = ds['sst'].groupby(xr.where(ds['time.month'] >= 6, ds['time.year'] + 1, ds['time.year'])).mean(dim='time')

这两种写法都能高效完成你的需求,和原代码一样简洁优雅~

内容的提问来源于stack exchange,提问作者Leo van Kampenhout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:16:57