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

np.timedelta64除法运算机制:时间差换算的除数数值探究

关于numpy/pandas时间差转年/月的换算除数说明

你用(b - a) / np.timedelta64(1, "M")得到的结果,本质是用时间差的总秒数除以平均公历月的固定秒数,同理转年份是除以平均公历年的固定秒数,具体数值如下:

  • 1个np.timedelta64(1, "M")对应的基准时长:2629746秒(即365.2425天 ÷ 12 × 86400秒/天)
  • 1个np.timedelta64(1, "Y")对应的基准时长:31556952秒(即365.2425天 × 86400秒/天)

为什么用这个数值?

格里高利历(现行公历)的平均年长度是365.2425天,由闰年规则(每4年一闰,百年不闰,四百年再闰)长期平均得来。numpy采用这个平均时长定义年/月基准,目的是统一处理跨闰年、不同月份天数的时间差换算,避免因实际月份天数差异导致的计算不一致,同时保证批量处理时间序列时的效率。

验证你的计算结果

你例子中的时间差是2022年1月1日到7月1日,共181天,总秒数为181 × 86400 = 15648000秒:

  • 转月份:15648000 ÷ 2629746 ≈ 5.9467,和你的结果一致
  • 转年份:15648000 ÷ 31556952 ≈ 0.4955,也和你的结果匹配

这个换算不是基于某个单月的天数(比如30或31天),也不是简单的365/12,而是严格遵循公历平均年的基准值。

内容的提问来源于stack exchange,提问作者thomask

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:40:38