Esempio n. 1
0
class Seasonality:
    type_to_period = {
        "weekday": 7,
        "weekofyear": 53,
        "month": 12,
        "weekofmonth": 5,
        "hour": 24,
    }
    type_datetime_to_int_func = {
        "weekday": lambda dt: dt.weekday(),
        "weekofyear": lambda dt: dt.isocalendar()[1] - 1,
        "month": lambda dt: dt.month - 1,
        "weekofmonth": lambda dt: dt.day // 7,
        "hour": lambda dt: dt.hour
    }

    def __init__(self, seasonality_type):
        assert seasonality_type in self.type_to_period, \
            "Invalid seasonality! Needs to be in %s!" % self.type_to_period.keys()

        self.seasonality_type = seasonality_type
        self.seasonal_period = self.type_to_period[self.seasonality_type]
        self._datetime_to_int_func = self.type_datetime_to_int_func[
            self.seasonality_type]

    def datetime_to_array(self, arr):
        return np.vectorize(self._datetime_to_int_func)(arr)

    def _get_next_x(self, last_date, increment, n_next):
        new_dates = last_date + increment * np.arange(1, n_next + 1)
        return self.datetime_to_array(new_dates)

    def apply_decoder(self, apply_to):
        return apply_to / self._decoder

    def apply_encoder(self, apply_to):
        return apply_to * self._encoder

    def get_model_inputs(self):
        return self._inputs

    def plot_seasonality(self):
        import matplotlib.pyplot as plt
        weights = self.get_weights()
        if len(weights.shape) > 1 and weights.shape[1] == self.seasonal_period:
            weights = weights.T

        plt.figure()
        plt.plot(weights)
        plt.title(self.seasonality_type, fontsize=15)
Esempio n. 2
0
def _format_date(datetime):
    return datetime.strftime(
        "%A, %b %d, %Y (week {week})".format(week=datetime.isocalendar()[1])
    )
Esempio n. 3
0
def _format_date(datetime: datetime.datetime) -> str:
    return datetime.strftime(
        "%A, %b %d, %Y (week {week})".format(week=datetime.isocalendar()[1]))
Esempio n. 4
0
from datetime import datetime

pattern = '%H:%M:%S %d-%m-%Y'
result = datetime.strptime(datetime_string, pattern).isoformat()




# ЗАДАЧА №5
# В переменной time_shift хранится целое число. Необходимо определить
# порядковый номер недели в году (ISO 8601), на дату со сдвигом от
# текущей на количество дней хранящееся в time_shift.

from datetime import datetime
from datetime import timedelta

result = datetime.isocalendar(datetime.now() + timedelta(days=time_shift))[1]



# ЗАДАЧА №6

from collections import Counter, OrderedDict, defaultdict

result = defaultdict(list)
for operation in history:
    date, oper_type = operation['access_date'], operation['access_type']
    result[date].append(oper_type)
for key, value in result.items():
    result[key] = dict(Counter(value))
result = OrderedDict(sorted(result.items(), key=lambda x: x[0]))
Esempio n. 5
0
print("#########################################################")
print("Diferencia de dos fechas (date)")
hoy = date.today()
navidad_año_proximo = date(2024, 12, 25)
faltan = navidad_año_proximo - hoy
print("Hoy:", hoy)
print("La navidad del 2024", navidad_año_proximo)
print("Faltan", faltan.days, "días")

print("Expresar una fecha en formato largo")
print("Hoy es...", datetime.ctime(fecha1))
print(
    "A partir de una fecha se obtiene tupla con año, nº semana y día de semana"
)

print("Fecha", fecha1, "Año, nº sem., día sem.:", datetime.isocalendar(fecha1))
print(
    "A partir de una fecha se obtiene tupla con año, nº semana y día de semana"
)
print("También, se muestra el día de la semana en letras (abreviado).")

print("Desglose de la fecha", fecha2, ":")
tupla_mensajes = ("Año", "Núm. semana", "Núm. día de semana")
tupla_valores = datetime.isocalendar(fecha2)
tupla_diassem = ("Lun", "Mar", "Mié", "Jue", "Vie", "Sáb", "Dom")
for mensaje, valor in zip(tupla_mensajes, tupla_valores):
    print(mensaje, "-->", valor)

print("Día de semana-->", tupla_diassem[tupla_valores[2] - 1])
print(input("		continuar?"))
Esempio n. 6
0
#Clase_fechas_Ej_018
print("Diferencia de dos fechas (date)")
hoy = date.today()
navidad_año_proximo = date(2024, 12, 25)
faltan = navidad_año_proximo - hoy
print ("Hoy:", hoy)
print ("La navidad del 2024", navidad_año_proximo)
print ("Faltan", faltan.days, "días")

print("Expresar una fecha en formato largo")
print("Hoy es...", datetime.ctime(fecha1))
print("A partir de una fecha se obtiene tupla con año, nº semana y día de semana")

print("Fecha", fecha1,
      "Año, nº sem., día sem.:",
      datetime.isocalendar(fecha1))
print("A partir de una fecha se obtiene tupla con año, nº semana y día de semana")
print("También, se muestra el día de la semana en letras (abreviado).")

print("Desglose de la fecha", fecha2,":")
tupla_mensajes = ("Año", "Núm. semana", "Núm. día de semana")
tupla_valores = datetime.isocalendar(fecha2)
tupla_diassem = ("Lun", "Mar", "Mié", "Jue","Vie", "Sáb","Dom")
for mensaje,valor in zip(tupla_mensajes, tupla_valores):
 print(mensaje,"-->", valor)

print("Día de semana-->", tupla_diassem[tupla_valores[2]-1])
nuevo(18,"inicio");
#################################################################