归一化#

sklearn.preprocessing.normalize(X, norm='l2', *, axis=1, copy=True, return_norm=False)[source]#

将输入向量分别缩放到单位范数(向量长度)。

更多信息请阅读用户指南

参数:
X形状为 (n_samples, n_features) 的 {数组、稀疏矩阵}

要归一化的数据,逐元素进行。为了避免不必要的复制,scipy.sparse 矩阵应该采用 CSR 格式。

norm{'l1', 'l2', 'max'},默认为 'l2'

用于归一化每个非零样本(如果 axis 为 0,则为每个非零特征)的范数。

axis{0, 1},默认为 1

定义用于沿其归一化数据的轴。如果为 1,则独立归一化每个样本;否则(如果为 0),则归一化每个特征。

copy布尔值,默认为 True

如果为 False,则尝试避免复制并原位归一化。但这并不能保证总是原位进行;例如,如果数据是具有 int 数据类型的 numpy 数组,即使 copy=False,也会返回一个副本。

return_norm布尔值,默认为 False

是否返回计算出的范数。

返回值:
X{ndarray, sparse matrix} 形状为 (n_samples, n_features)

标准化后的输入 X。

norms形状为 (n_samples, ) 的 ndarray(如果 axis=1), 否则为 (n_features, )

X 沿指定轴的范数数组。当 X 为稀疏矩阵时,对于范数 'l1' 或 'l2',将引发 NotImplementedError。

另请参见

归一化器

使用 Transformer API 执行规范化(例如,作为预处理 Pipeline 的一部分)。

注释

有关不同缩放器、转换器和规范化器的比较,请参见:比较不同缩放器对异常值数据的影响

示例

>>> from sklearn.preprocessing import normalize
>>> X = [[-2, 1, 2], [-1, 0, 1]]
>>> normalize(X, norm="l1")  # L1 normalization each row independently
array([[-0.4,  0.2,  0.4],
       [-0.5,  0. ,  0.5]])
>>> normalize(X, norm="l2")  # L2 normalization each row independently
array([[-0.66...,  0.33...,  0.66...],
       [-0.70...,  0.     ,  0.70...]])