在Python中,norm函數用于計算向量的范數。向量的范數是一個標量值,表示向量的大小或長度。
norm函數的用法如下:
numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)
參數說明:
x: 輸入的向量或數組。
ord: 范數的類型。默認為None,表示計算2范數(歐幾里德范數)。可以是整數、無窮大(np.inf)、負無窮大(-np.inf)或字符串值('fro’表示Frobenius范數)。
axis: 指定按照哪個軸計算范數。默認為None,表示對整個數組進行計算。
keepdims: 是否保持結果的維度。默認為False,表示結果為標量。如果設置為True,結果將保持與輸入數組相同的維度。
范數的計算公式如下:
L0范數:向量中非零元素的個數。
L1范數:向量中各個元素的絕對值之和。
L2范數:向量中各個元素的平方和的平方根。
Lp范數:向量中各個元素的p次方和的1/p次方。
無窮范數:向量中絕對值最大的元素的絕對值。
示例:
import numpy as np
x = np.array([1, 2, 3, 4, 5])
norm_2 = np.linalg.norm(x) # 計算2范數
norm_1 = np.linalg.norm(x, ord=1) # 計算1范數
norm_inf = np.linalg.norm(x, ord=np.inf) # 計算無窮范數
print(norm_2) # 輸出:7.416198487095663
print(norm_1) # 輸出:15.0
print(norm_inf) # 輸出:5.0