python - numpy datetime64 添加或减去日期间隔

标签 python date numpy datetime64

我正在解析一个巨大的 ascii 文件,其中包含分配给条目的日期。因此,我发现自己使用与 numpy.datetime64 并行的 datetime 包来添加数组功能。我知道 pandas 包可能最推荐用于约会,但是请尝试在没有 pandas 的情况下完成此操作。我一直在寻找一种巧妙的方法来从 datetime64 对象中添加/减去某个日期步长,例如一年或 3 个月。

目前,我正在将 dt64 对象转换为 dt 对象,并使用替换函数来更改年份,然后必须将其转换回 dt64,这对我来说有点困惑。因此,如果有人有仅使用 numpy.datetime64 格式的更好解决方案,我将不胜感激。

Example: Converting a "YYYY-12-31" to "(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 对象执行时间增量计算,参见 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')

关于python - numpy datetime64 添加或减去日期间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22842314/

相关文章:

python - 从字节文件中查找拜耳模式格式

python - 用于 xarray 的 JAX pytree

JAVA:用时区解析日期

pandas - hstack csr 矩阵与 pandas 数组

python - 如何将 Heroku 上的不同包要求到本地盒子?

python - 使用 setuptools 安装 numpy 作为依赖项

javascript - Firefox 中的无效日期 - Javascript

mysql - 如何从 Mysql 中获取本周的日期(从周一到周日)

Python Xgboost : ValueError ('feature_names may not contain [, ] or <' )

python - 如何从 OpenCV 图像而不是 numpy 数组中获取 TIFF 字节流?