numpy.linalg模块包含线性代数的函数。使用这个模块,可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等.
np.liealg.norm函数用来计算所谓的范数,可以输入一个vector,也可以输入一个matrix。
L2范数是最常见的范数,恐怕就是一个vector的长度,这属于2阶范数,对vector中的每个component平方,求和,再开根号。这也被称为欧几里得范数(Euclidean norm)。
在没有别的参数的情况下,np.linalg.norm输入一个vector,就是计算vector的长度:vector的每个component的平方相加后开根号。
当输入是一个matrix的时候,在没有其他参数的情况下,np.linalg.norm的动作就是将此matrix的每一个参数的平方相加后开根号,相当于求所有column vector的长度的平方和,然后开根号。
import numpy as np
x = [1,2,3,4]
x1 = np.linalg.norm(x=x, ord=1)
x2 = np.linalg.norm(x=x, ord=2)
x3 = np.linalg.norm(x=x, ord=np.inf)
print(x1)
print(x2)
print(x3)
运行结果:
其中的axis=0表示对矩阵的每一列求范数,axis=1表示对矩阵的每一行求范数, keeptime=True表示结果保留二维特性,keeptime=False表示结果不保留二维特性
示例代码如下
import numpy as np
x = np.array([[0, 1, 2],
[3, 4, 5]])
x1 = np.linalg.norm(x=x, ord=1, axis=0, keepdims=True)
x2 = np.linalg.norm(x=x, ord=1, axis=1, keepdims=True)
x3 = np.linalg.norm(x=x, ord=1, axis=0, keepdims=False)
x4 = np.linalg.norm(x=x, ord=1, axis=1, keepdims=False)
print(x1)
print(x2)
print(x3)
print(x4)
运行结果如下: