python numpy实现归一化

2023-03-09 00:00:00 python numpy 归一化

NumPy可以通过numpy.linalg.norm函数来实现归一化,将向量或矩阵按照L1或L2范数进行归一化。

以L2范数为例,假设有一个一维数组a,可以通过以下代码进行归一化:

import numpy as np

a = np.array([1, 2, 3, 4, 5])
a_norm = np.linalg.norm(a)  # 计算a的L2范数
a_normalized = a / a_norm  # 归一化
print(a_normalized)

输出结果为:

[0.13483997 0.26967994 0.40451992 0.53935989 0.67419987]

同样的,如果要将一个二维数组b的每一行归一化,可以使用以下代码:

b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b_norm = np.linalg.norm(b, axis=1, keepdims=True)  # 计算每一行的L2范数
b_normalized = b / b_norm  # 归一化
print(b_normalized)

输出结果为:

lua [[0.26726124 0.53452248 0.80178373] [0.45584231 0.56980288 0.68376345] [0.50257071 0.57436653 0.64616235]]
其中,axis=1表示对每一行进行操作,keepdims=True表示保留原数组的维度。

相关文章