我正在解析一个巨大的 ascii 文件,其中包含分配给条目的日期。因此,我发现自己使用 datetime 包与 numpy.datetime64 并行来添加数组功能。我知道 pandas 包可能是最推荐用于约会的,但是尝试在没有 pandas 的情况下完成此操作。我一直在寻找一种巧妙的方法来从 datetime64 对象中添加/减去某个日期步骤,例如一年或 3 个月。
目前,我正在将 dt64 对象转换为 dt 对象,并使用替换函数来更改年份,然后必须将其转换回 dt64,这对我来说有点混乱。因此,如果有人有仅使用 numpy.datetime64 格式的更好解决方案,我将不胜感激。
示例:将“YYYY-12-31”转换为“(YYYY-1)-12-31”
a = np.datetime64(2014,12,31) # a is dt64 object
b = a.astype(object) # b is dt object converted from a
c = np.datetime64( b.replace(b.year-1)) # c is dt64 object shifted back 1 year (a -1year)
您可以使用 numpy.timedelta64 对象对 numpy.datetime64 对象执行时间增量计算,请参阅日期时间和 Timedelta 算术 http://docs.scipy.org/doc/numpy/reference/arrays.datetime.html#datetime-and-timedelta-arithmetic/.
由于一年可以是 365 天或 366 天,因此不可能减去一年,但可以减去 365 天:
import numpy as np
np.datetime64('2014-12-31') - np.timedelta64(365,'D')
结果是:
numpy.datetime64('2013-12-31')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)