时间离散/重采样
from datetime import datetime imoport numpy as np from itertools import product class timeDiscrete(): # 时间格式的离散和对齐-计数 def __init__(self, delta=30, dft='%Y-%m-%d %H:%M:%S'): self.delta = delta # 重采样时间差 分钟 self.dft = dft # 时间格式 self.dct = [F"{h:02}:{m:02}" for h, m in product(range(24), range(0, 60, delta))] # 重采样后的标签 def idiscrete(self, imoment): # 时间点 重采样为 delta的15min的时间点 # itime 2024-01-21 11:20:30 itime = datetime.strptime(imoment, self.dft) hh, mm, ss = itime.hour, itime.minute, itime.second hm = hh * 60 + mm + ss / 60 ihm = int(np.ceil(hm/self.delta)) res = self.dct[ihm] if ihm < self.dct.__len__() else "00:00" return res