Source code for timeflux.estimators.transformers.shape

import numpy as np
from sklearn.base import BaseEstimator, TransformerMixin, ClassifierMixin


[docs]class Transpose(BaseEstimator, TransformerMixin): def __init__(self, axes): self._axes = axes
[docs] def fit(self, X, y=None): return self
[docs] def transform(self, X): return np.transpose(X, self._axes)
[docs] def fit_transform(self, X, y=None): return self.fit(X).transform(X)
[docs]class Expand(BaseEstimator, TransformerMixin): def __init__(self, axis=0, dimensions=3): self._axis = axis self._dimensions = dimensions
[docs] def fit(self, X, y=None): return self
[docs] def transform(self, X): X = np.asarray(X) if len(X.shape) < self._dimensions: return np.expand_dims(X, axis=self._axis) else: return X
[docs] def fit_transform(self, X, y=None): return self.fit(X).transform(X)
[docs]class Reduce(BaseEstimator, TransformerMixin): def __init__(self, axis=0): self._axis = axis
[docs] def fit(self, X, y=None): return self
[docs] def transform(self, X): X = np.asarray(X) if X.ndim < 3: return X return np.squeeze(X, axis=self._axis)
[docs] def fit_transform(self, X, y=None): return self.fit(X).transform(X)