np.linalg.norm(求范数)

1、linalg=linear(线性)+algebra(代数),norm则表示范数。

2、函数参数

[python]  view plain  copy
  1. x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False)  

①x: 表示矩阵(也可以是一维)

②ord:范数类型

向量的范数:


矩阵的范数:

ord=1:列和的最大值

ord=2:|λE-ATA|=0,求特征值,然后求最大特征值得算术平方根

ord=∞:行和的最大值

③axis:处理类型

axis=1表示按行向量处理,求多个行向量的范数

axis=0表示按列向量处理,求多个列向量的范数

axis=None表示矩阵范数。

④keepding:是否保持矩阵的二维特性

True表示保持矩阵的二维特性,False相反

3、代码实现

[python]  view plain  copy
  1. import numpy as np  
  2. x = np.array([  
  3.     [034],  
  4.     [164]])  
  5. #默认参数ord=None,axis=None,keepdims=False  
  6. print "默认参数(矩阵2范数,不保留矩阵二维特性):",np.linalg.norm(x)  
  7. print "矩阵2范数,保留矩阵二维特性:",np.linalg.norm(x,keepdims=True)  
  8.   
  9. print "矩阵每个行向量求向量的2范数:",np.linalg.norm(x,axis=1,keepdims=True)  
  10. print "矩阵每个列向量求向量的2范数:",np.linalg.norm(x,axis=0,keepdims=True)  
  11.   
  12. print "矩阵1范数:",np.linalg.norm(x,ord=1,keepdims=True)  
  13. print "矩阵2范数:",np.linalg.norm(x,ord=2,keepdims=True)  
  14. print "矩阵∞范数:",np.linalg.norm(x,ord=np.inf,keepdims=True)  
  15.   
  16. print "矩阵每个行向量求向量的1范数:",np.linalg.norm(x,ord=1,axis=1,keepdims=True)  

结果显示:


4、总结

①矩阵的三种范数求法

②向量的三种范数求法

猜你喜欢

转载自blog.csdn.net/odailidong/article/details/79606474