1. 程式人生 > >numpy.linalg.norm(求範數)

numpy.linalg.norm(求範數)

inf none 線性 ron image .com 多個 port print

1、linalg=linear(線性)+algebra(代數),norm則表示範數。

2、函數參數

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、代碼實現

import numpy as np  
x = np.array([  
    [0, 3, 4],  
    [1, 6, 4]])  
#默認參數ord=None,axis=None,keepdims=False  
print "默認參數(矩陣2範數,不保留矩陣二維特性):",np.linalg.norm(x)  
print "矩陣2範數,保留矩陣二維特性:",np.linalg.norm(x,keepdims=True)  
  
print "矩陣每個行向量求向量的2範數:",np.linalg.norm(x,axis=1,keepdims=True) print "矩陣每個列向量求向量的2範數:",np.linalg.norm(x,axis=0,keepdims=True) print "矩陣1範數:",np.linalg.norm(x,ord=1,keepdims=True) print "矩陣2範數:",np.linalg.norm(x,ord=2,keepdims=True) print "矩陣∞範數:",np.linalg.norm(x,ord=np.inf,keepdims=True)
print "矩陣每個行向量求向量的1範數:",np.linalg.norm(x,ord=1,axis=1,keepdims=True)

結果顯示:

  技術分享圖片

4、總結

①矩陣的三種範數求法

②向量的三種範數求法

numpy.linalg.norm(求範數)