Tip

This page was generated from guide/build_transformer.ipynb.

How to Build Transformer#

Generate Transformer from Method#

[1]:
from __future__ import annotations

import numpy as np

from dtoolkit.transformer.factory import methodtf_factory

Generate a plus / minus constant transformer:

[2]:
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)

Use this transformer:

[3]:
a = np.array([1, 2, 3])
tf = PlusTF(constant=1).update_invargs(constant=1)
[4]:
tf.transform(a)
[4]:
array([2, 3, 4])
[5]:
tf.inverse_transform(a)
[5]:
array([0, 1, 2])

Build DataFrame Transformer#

Port numpy’s method to transformer.

[6]:
from dtoolkit.transformer import NumpyTF


class MyTF(NumpyTF):
    """Doc here"""

    transform_method = staticmethod("numpy's inner method")