欢迎访问宙启技术站
智能推送

Python中的l2_normalize()函数用法与示例

发布时间:2024-01-18 13:48:34

l2_normalize()函数是Python中用于对向量进行L2范数归一化的函数。L2范数归一化,也称为欧几里德归一化,是将一个向量除以其L2范数,使其变成单位向量。具体说来,对于一个维度为n的向量x,其L2范数归一化结果y为:

y = x / ||x||2

其中x表示原向量,||x||2表示x的L2范数。

以下是l2_normalize()函数的用法和示例:

import numpy as np

def l2_normalize(x):
    norm = np.linalg.norm(x, ord=2)
    if norm == 0:
        return x
    return x / norm

示例1:对向量进行L2范数归一化

x = np.array([3, 4])
y = l2_normalize(x)
print(y)

输出结果:

[0.6 0.8]

示例2:对矩阵的每个向量进行L2范数归一化

matrix = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])
normalized_matrix = np.apply_along_axis(l2_normalize, 1, matrix)
print(normalized_matrix)

输出结果:

[[0.57735027 0.57735027 0.57735027]
 [0.57735027 0.57735027 0.57735027]
 [0.57735027 0.57735027 0.57735027]]

在示例1中,将向量[3, 4]进行L2范数归一化后得到[0.6, 0.8]。在示例2中,对矩阵的每个向量进行L2范数归一化,得到了每个向量都具有单位长度的矩阵。