{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How to Build Transformer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generate Transformer from Method" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from __future__ import annotations\n", "\n", "import numpy as np\n", "\n", "from dtoolkit.transformer.factory import methodtf_factory" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate a plus / minus constant transformer:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def plus_constant(X: np.ndarray, constant: int | float) -> np.ndarray:\n", " \"\"\"Plus constant to each element of ``X``\"\"\"\n", "\n", " return X + constant\n", "\n", "\n", "def minus_constant(X: np.ndarray, constant: int | float) -> np.ndarray:\n", " \"\"\"Minus constant to each element of ``X``\"\"\"\n", "\n", " return X - constant\n", "\n", "\n", "PlusTF = methodtf_factory(plus_constant, minus_constant)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use this transformer:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "a = np.array([1, 2, 3])\n", "tf = PlusTF(constant=1).update_invargs(constant=1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "tf.transform(a)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "tf.inverse_transform(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Build DataFrame Transformer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Port `numpy`'s method to transformer." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from dtoolkit.transformer import NumpyTF\n", "\n", "\n", "class MyTF(NumpyTF):\n", " \"\"\"Doc here\"\"\"\n", "\n", " transform_method = staticmethod(\"numpy's inner method\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.12" } }, "nbformat": 4, "nbformat_minor": 4 }