python norm函数-python l2 norm
np.linalg.norm(求范数):linalg=linear(线性)+ algebra(代数),norm表示范数。
函数参数
x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False)
①x:表示矩阵(也可以是一维的)
②ord:规范型
向量范数:
矩阵的范数:
ord=1:列和的最大值
ord=2:|λE-ATA|=0,求特征值,然后求最大特征值的算术平方根
ord=∞:行和的最大值
③轴:加工类型
axis=1表示作为行向量处理,求多个行向量的范数
axis=0表示作为列向量处理,求多个列向量的范数
axis=None 表示矩阵范数。
④keeping:是否保持矩阵的二维特征
True表示保持矩阵的二维性质,False则相反
向量范数:
1范数:
,即向量元素的绝对值之和,matlab调用函数norm(x, 1)。
2范数:
,Euclid范数(Euclidean norm,常用于计算向量的长度),即向量元素的绝对值的平方根python norm函数,matlab调用函数norm(x, 2)。
∞范数:
,即所有向量元素的绝对值中的最大值,matlab调用函数norm(x, inf)。
-∞范数:
,即所有向量元素的绝对值的最小值,matlab调用函数norm(x, -inf)。
p范数:
,即向量元素绝对值的p次方和的1/p次方,matlab调用函数norm(x, p)。
矩阵范数:
1范数:
,Column and norm,即所有矩阵列向量的绝对值之和的最大值,matlab调用函数norm(A, 1)。
2范数:
,谱范数,即A'A矩阵的最大特征值的平方根。 matlab 调用函数 norm(x, 2)。
∞范数:
python norm函数,row和norm,即所有矩阵行向量的绝对值之和的最大值,matlab调用函数norm(A, inf)。
F范数:
,Frobenius范数,即矩阵元素绝对值的平方和再求平方根,matlab调用函数norm(A, 'fro')。
import numpy as np x1=np.array([1,5,6,3,-1]) x2=np.arange(12).reshape(3,4) print x1,'\n',x2 print '向量2范数:' print np.linalg.norm(x1) print np.linalg.norm(x1,ord=2) print '默认的矩阵范数:' print np.linalg.norm(x2) print '矩阵2范数:' print np.linalg.norm(x2,ord=2)
测试知道:
np.linalg.norm(X),当X为向量时,默认为求向量2范数,即求向量元素绝对值的平方和,然后求平方根;
如果 X 是矩阵,则默认为查找 F 范数。 矩阵的F范数为:矩阵各元素的平方和再开平方根。 通常称为矩阵的 L2 范数。 它的优点是是凸函数,可求可解,计算方便。
上面的python Numpy求向量和矩阵范数的例子就是小编分享的全部内容。 希望能给大家一个参考,也希望大家多多支持甜甜圈教程。