np.linalg.norm(求范数)
原文链接:https://blog.csdn.net/hqh131360239/article/details/79061535
1. 函数名字解析
np: numpy
linalg: linear(线性) + algebra(代数)
norm: 范数
2. 函数参数
x_norm = np.linalg.norm(x,ord = None,axis = None,keepdims = False)
- X:表示矩阵(也可以是一维)
- ord: 范数类型
向量的范数:

矩阵的范数:
ord = 1(列模) : 列和的最大值
ord = 2(谱模) : XTX的最大特征值的平方根
ord = ∞ (行模): 行和的最大值
ord = None : 求矩阵整体元素平方和,再开根号 (默认)
- axis: 处理类型
axis = 1 ,表示按行向量处理,求多个行向量的范数
axis = 0,表示按列向量处理,求多个列向量的范数
axis = None,表示矩阵范数(默认)
- keeping: 是否保持矩阵的二维特性
True: 表示保持矩阵的二维特性
False: 相反(默认)
3. 代码验证
import numpy as np
x = np.array([
[0, 3, 4],
[1, 6, 4]])
#默认参数ord=None,axis=None,keepdims=False
print("默认参数(矩阵整体元素平方和开根号,不保留矩阵二维特性):%f"%(np.linalg.norm(x)))
print("矩阵整体元素平方和开根号,保留矩阵二维特性:%f"%(np.linalg.norm(x,keepdims=True)))
print("矩阵1范数:%f"%(np.linalg.norm(x,ord=1,keepdims=True)))
print("矩阵2范数:%f"%(np.linalg.norm(x,ord=2,keepdims=True)))
print("矩阵∞范数:%f"%(np.linalg.norm(x,ord=np.inf,keepdims=True)))
print("矩阵每个行向量求向量的2范数:%f"%(np.linalg.norm(x,axis=1,keepdims=True)))
print("矩阵每个列向量求向量的2范数:%f"%(np.linalg.norm(x,axis=0,keepdims=True)))
print("矩阵每个行向量求向量的1范数:%f"%(np.linalg.norm(x,ord=1,axis=1,keepdims=True)))

浙公网安备 33010602011771号