numpy的linalg.norm()函数求范数

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的长度的平方和,然后开根号。
numpy的linalg.norm()函数求范数_第1张图片

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)

运行结果:
numpy的linalg.norm()函数求范数_第2张图片
其中的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)

运行结果如下:
numpy的linalg.norm()函数求范数_第3张图片

你可能感兴趣的:(numpy,线性代数,矩阵,python)