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)))

 

 

posted @ 2020-05-01 20:37  此间一看客  阅读(794)  评论(0)    收藏  举报