【问题标题】:Python: Calculate number of days between two daysPython:计算两天之间的天数
【发布时间】:2019-09-16 20:42:36
【问题描述】:

我有两个数组,参考数组和目标数组。每个数组都有一年中的某一天(DOY)信息,我试图找出两者之间实际天数的差异。这是代码,

import numpy as np

array_ref = np.array([[362,284],[89,360]])
array_ref
array([[362, 284],
       [ 89, 360]])

array_n = np.array([[2, 365], [194, 10]])
array_n
array([[  2, 365],
       [194,  10]])

绝对差给出了这个,

print(abs(array_ref-array_n))
[[360  81]
 [105 350]]

但是,我正在努力实现这一目标,

[[5, 81]
 [105, 15]]

我不确定是否必须使用任何datetimetimedelta 函数,或者是否有更简单的方法来实现这一点。感谢您的帮助。

【问题讨论】:

    标签: python-3.x pandas numpy datetime timedelta


    【解决方案1】:

    有余数除法。

    (array_n-array_ref)%365
    array([[  5,  81],
           [105,  15]], dtype=int32)
    

    一般来说,您可能需要检查哪个减法更接近:

    np.minimum((array_ref-array_n)%365, (array_n-array_ref)%365)
    array([[  5,  81],
           [105,  15]], dtype=int32)
    

    虽然这显然不会考虑闰年。

    【讨论】:

    • 谢谢..这行得通,我正在寻找更多的非闰年。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    相关资源
    最近更新 更多