dtoolkit.transformer.methodtf_factory#
- dtoolkit.transformer.methodtf_factory(transform_method: Callable, inverse_transform_method: Callable = None) MethodTF [source]#
Quickly generate transformer from methods.
- Parameters:
- transform_methodCallable
The back algorithm of the
transform()
.- inverse_transform_methodCallable or None
The back algorithm of the
inverse_transform()
.
Examples
In your library code:
from __future__ import annotations import numpy as np from dtoolkit.transformer.factory import methodtf_factory # Generate a plus/minus constant transformer: def plus_constant(X: np.ndarray, constant: int | float) -> np.ndarray: '''Plus constant to each element of ``X``''' return X + constant def minus_constant(X: np.ndarray, constant: int | float) -> np.ndarray: '''Minus constant to each element of ``X``''' return X - constant PlusTF = methodtf_factory(plus_constant, minus_constant)
Back in an interactive IPython session, use this transformer:
In [1]: import numpy as np In [2]: a = np.array([1, 2, 3]) In [3]: tf = PlusTF(1).update_invargs(1) In [4]: tf.transform(a) Out[4]: [2 3 4] In [5]: tf.inverse_transform(a) Out[5]: [0 1 2]