目錄
前言
np.linalg.norm()用于求范數,linalg本意為linear(線性) + algebra(代數),norm則表示范數。
用法
np.linalg.norm(x, ord=None, axis=None, keepdims=False)
1.x: 表示矩陣(一維數據也是可以得~)
2.ord: 表示范數類型
向量得范數:
矩陣得向量:
- ord=1:表示求列和得最大值
- ord=2:|λE-ATA|=0,求特征值,然后求最大特征值得算術平方根
- ord=∞:表示求行和得最大值
- ord=None:表示求整體得矩陣元素平方和,再開根號
3.axis:
參數 | 含義 |
---|---|
0 | 表示按列向量來進行處理,求多個列向量得范數 |
1 | 表示按行向量來進行處理,求多個行向量得范數 |
None | 表示整個矩陣得范數 |
4.keepdims:表示是否保持矩陣得二位特性,True表示保持,False表示不保持,默認為False
例子
1.默認狀態下:
import numpy as npX = [[1, 2, 3], [4, 5, 6]]print(np.linalg.norm(X))
Result:
2.改變axis:
import numpy as npX = [[1, 2, 3], [4, 5, 6]]print(np.linalg.norm(X, axis=1))
import numpy as npX = [[1, 2, 3], [4, 5, 6]]print(np.linalg.norm(X, axis=0))
3.改變ord:
import numpy as npX = [[1, 2, 3], [4, 5, 6]]print(np.linalg.norm(X, ord=1))
import numpy as npX = [[1, 2, 3], [4, 5, 6]]print(np.linalg.norm(X, ord=2))
4.改變keepdims:
import numpy as npX = [[1, 2, 3], [4, 5, 6]]print(np.linalg.norm(X, axis=0, keepdims=True))
import numpy as npX = [[1, 2, 3], [4, 5, 6]]print(np.linalg.norm(X, axis=0))
注意:嚴格來說,當 ord <= 0 時,不符合數學上得范數公式,但它仍然適用于各種數值目得。
import numpy as npa = np.arange(12)print(a)b = a.reshape((3, 4))print(b)print(np.linalg.norm(a))print(np.linalg.norm(b))print(np.linalg.norm(b, 'fro'))print(np.linalg.norm(b, 'nuc'))print(np.linalg.norm(a, np.inf))print(np.linalg.norm(a, -np.inf))print(np.linalg.norm(a, 1))print(np.linalg.norm(b, np.inf, axis=1))print(np.linalg.norm(b, -np.inf, axis=0))print(np.linalg.norm(b, 1))
[ 0 1 2 3 4 5 6 7 8 9 10 11]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
22.4944437584
22.4944437584
22.4944437584
24.3646384993
11.0
0.0
66.0
[ 3. 7. 11.]
[ 0. 1. 2. 3.]
21.0
總結
到此這篇關于Python中np.linalg.norm()用法實例得內容就介紹到這了,更多相關Python np.linalg.norm()用法內容請搜索之家以前得內容或繼續瀏覽下面得相關內容希望大家以后多多支持之家!
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。