Source code for tssearch.utils.preprocessing

import numpy as np


[docs]def standardization(signal, fit=False, param=None): """Normalizes a given signal by subtracting the mean and dividing by the standard deviation. Parameters ---------- signal : nd-array input signal Returns ------- nd-array standardized signal """ if param is not None: s_mean = param[0] s_std = param[1] else: s_mean = np.mean(signal, axis=0) s_std = np.std(signal, axis=0) if fit: d_mean = np.mean(np.diff(signal, axis=0), axis=0) d_std = np.std(np.diff(signal, axis=0), axis=0) return (signal - s_mean) / s_std, np.array([s_mean, s_std, d_mean, d_std]) else: return (signal - s_mean) / s_std
[docs]def interpolation(x, y): """Computes the interpolation given two time series of different length. Parameters ---------- x : nd-array Time series x y : nd-array Time series y Returns ------- interp_signal (nd-array) Interpolated signal nd-array Time series """ lx = len(x) ly = len(y) if lx > ly: t_old = np.linspace(0, lx, ly) t_new = np.linspace(0, lx, lx) if len(np.shape(x)) == 1: y_new = np.interp(t_new, t_old, y) else: y_new = np.array([np.interp(t_new, t_old, y[:, ax]) for ax in range(np.shape(x)[1])]).T return x, y_new else: t_old = np.linspace(0, ly, lx) t_new = np.linspace(0, ly, ly) if len(np.shape(x)) == 1: x_new = np.interp(t_new, t_old, x) else: x_new = np.array([np.interp(t_new, t_old, x[:, ax]) for ax in range(np.shape(x)[1])]).T return x_new, y