# Normalizer

### *class* cuml.preprocessing.Normalizer(\*args, \*\*kwargs)[[source]](https://github.com/NVIDIA/cuml/blob/93418baf5/python/cuml/cuml/_thirdparty/sklearn/preprocessing/_data.py#L1878)

Normalize samples individually to unit norm.

Each sample (i.e. each row of the data matrix) with at least one
non zero component is rescaled independently of other samples so
that its norm (l1, l2 or inf) equals one.

This transformer is able to work both with dense numpy arrays and
sparse matrix

Scaling inputs to unit norms is a common operation for text
classification or clustering for instance. For instance the dot
product of two l2-normalized TF-IDF vectors is the cosine similarity
of the vectors and is the base similarity metric for the Vector
Space Model commonly used by the Information Retrieval community.

* **Parameters:**
  **norm**
  : The norm to use to normalize each non zero sample. If norm=’max’
    is used, values will be rescaled by the maximum of the absolute
    values.

  **copy**
  : Whether a forced copy will be triggered. If copy=False, a copy might
    be triggered by a conversion.

### Methods

| [`fit`](#cuml.preprocessing.Normalizer.fit)(X[, y])          | Do nothing and return the estimator unchanged   |
|-----------------------------------------------------------------------|-------------------------------------------------|
| [`transform`](#cuml.preprocessing.Normalizer.transform)(X[, copy]) | Scale each non zero row of X to unit norm       |

#### SEE ALSO
[`normalize`](../cuml.preprocessing.normalize/index.html.md#cuml.preprocessing.normalize)
: Equivalent function without the estimator API.

### Notes

This estimator is stateless (besides constructor parameters), the
fit method does nothing but is useful when used in a pipeline.

### Examples

```pycon
>>> from cuml.preprocessing import Normalizer
>>> import cupy as cp
>>> X = [[4, 1, 2, 2],
...      [1, 3, 9, 3],
...      [5, 7, 5, 1]]
>>> X = cp.array(X)
>>> transformer = Normalizer().fit(X)  # fit does nothing.
>>> transformer
Normalizer()
>>> transformer.transform(X)
array([[0.8, 0.2, 0.4, 0.4],
       [0.1, 0.3, 0.9, 0.3],
       [0.5, 0.7, 0.5, 0.1]])
```

<!-- !! processed by numpydoc !! -->

#### fit(X, y=None) → [Normalizer](#cuml.preprocessing.Normalizer)[[source]](https://github.com/NVIDIA/cuml/blob/93418baf5/python/cuml/cuml/_thirdparty/sklearn/preprocessing/_data.py#L1950)

Do nothing and return the estimator unchanged

This method is just there to implement the usual API and hence
work in pipelines.

* **Parameters:**
  **X**

<!-- !! processed by numpydoc !! -->

#### fit_transform(X, y=None, \*\*fit_params)[[source]](https://github.com/NVIDIA/cuml/blob/93418baf5/python/cuml/cuml/_thirdparty/sklearn/utils/skl_dependencies.py#L42)

Fit to data, then transform it.

Fits transformer to X and y with optional parameters fit_params
and returns a transformed version of X.

* **Parameters:**
  **X**

  **y**
  : Target values.

  **\*\*fit_params**
  : Additional fit parameters.
* **Returns:**
  **X_new**
  : Transformed array.

<!-- !! processed by numpydoc !! -->

#### get_feature_names_out(input_features=None)

Get output feature names for transformation.

* **Parameters:**
  **input_features**
  : Input features.
    - If `input_features` is [`None`](https://docs.python.org/3/builtins/constants.html#None), then `feature_names_in_` is
      used as feature names in. If `feature_names_in_` is not defined,
      then the following input feature names are generated:
      `["x0", "x1", ..., "x(n_features_in_ - 1)"]`.
    - If `input_features` is an array-like, then `input_features` must
      match `feature_names_in_` if `feature_names_in_` is defined.
* **Returns:**
  **feature_names_out**
  : Same as input features.

<!-- !! processed by numpydoc !! -->

#### get_params(deep=True)[[source]](https://github.com/NVIDIA/cuml/blob/93418baf5/python/cuml/cuml/internals/base.py#L191)

Returns a dict of all params owned by this class. If the child class
has appropriately overridden the `_get_param_names` method and does not
need anything other than what is there in this method, then it doesn’t
have to override this method

<!-- !! processed by numpydoc !! -->

#### set_params(\*\*params)[[source]](https://github.com/NVIDIA/cuml/blob/93418baf5/python/cuml/cuml/internals/base.py#L200)

Accepts a dict of params and updates the corresponding ones owned by
this class. If the child class has appropriately overridden the
`_get_param_names` method and does not need anything other than what is,
there in this method, then it doesn’t have to override this method

<!-- !! processed by numpydoc !! -->

#### transform(X, copy=None)[[source]](https://github.com/NVIDIA/cuml/blob/93418baf5/python/cuml/cuml/_thirdparty/sklearn/preprocessing/_data.py#L1964)

Scale each non zero row of X to unit norm

* **Parameters:**
  **X**
  : The data to normalize, row by row.

  **copy**
  : Whether a forced copy will be triggered. If copy=False,
    a copy might be triggered by a conversion.

<!-- !! processed by numpydoc !! -->
