Source code for osl_dynamics.simulation.base

"""Base simulation class."""

from typing import Optional

import numpy as np


[docs] class Simulation: """Simulation base class. Parameters ---------- n_samples : int Number of time points to generate. """ def __init__(self, n_samples: int) -> None:
[docs] self.n_samples = n_samples
[docs] self.time_series = None
def __array__(self) -> np.ndarray: return self.time_series def __iter__(self): return iter([self.time_series]) def __getattr__(self, attr: str): if attr == "time_series": raise NameError("time_series has not yet been created.") if attr[:2] == "__": raise AttributeError(f"No attribute called {attr}.") return getattr(self.time_series, attr) def __len__(self) -> int: return 1
[docs] def standardize(self, axis: int = 0) -> None: mu = np.mean(self.time_series, axis=axis, keepdims=True) sigma = np.std(self.time_series, axis=axis, keepdims=True) self.time_series = (self.time_series - mu) / sigma