replace
Replace
Bases: OneToOneTransformer
Transform series by replacing a range of values by another value.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values_range(List[List[float]]) | Range of values one wants to replace. | required | |
value(float) | Replacement value. | required |
Source code in eki_mmo_equations/one_to_one_transformations/replace.py
class Replace(OneToOneTransformer):
"""Transform series by replacing a range of values by another value.
Args:
values_range(List[List[float]]): Range of values one wants to replace.
value(float): Replacement value.
"""
def __init__(self, values_range: List[List[float]], value: float) -> None:
self.values_range = values_range
self.value = value
@property
def parameters(self) -> Dict[str, Any]:
return self.__dict__
# ------- METHODS -------
def transform(self, serie: np.ndarray, copy=False) -> np.ndarray:
serie = super().transform(serie, copy)
return self._transformer(serie, self.values_range, self.value)
def fit(self, serie: np.ndarray, y=None):
"""Fit transformation on serie
Args:
serie (np.ndarray): data to fit on.
"""
return super().fit(serie, y)
# ------- TRANSFORMERS -------
@staticmethod
def _transformer(serie: np.ndarray, values_range, value) -> np.ndarray:
for range in values_range:
serie[(serie >= range[0]) & (serie <= range[1])] = value
return np.nan_to_num(serie)
# ------- CHECKERS -------
def check_params(self, serie: np.ndarray):
"""Check if parameters respect their application scope."""
for range in self.values_range:
if not (isinstance(range, list) and len(range) == 2):
raise ParameterScopeException("The values_range argument should be of the form [[0,10], [100,200]]")
check_params(serie)
Check if parameters respect their application scope.
Source code in eki_mmo_equations/one_to_one_transformations/replace.py
def check_params(self, serie: np.ndarray):
"""Check if parameters respect their application scope."""
for range in self.values_range:
if not (isinstance(range, list) and len(range) == 2):
raise ParameterScopeException("The values_range argument should be of the form [[0,10], [100,200]]")
fit(serie, y=None)
Fit transformation on serie
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
serie | np.ndarray | data to fit on. | required |
Source code in eki_mmo_equations/one_to_one_transformations/replace.py
def fit(self, serie: np.ndarray, y=None):
"""Fit transformation on serie
Args:
serie (np.ndarray): data to fit on.
"""
return super().fit(serie, y)