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表示保留原数组的维度。
相关文章