numpy.linalg.norm求范数
用help(numpy.linalg.norm)查看帮助文档:
norm(x, ord=None, axis=None, keepdims=False)
1、x代表矩阵或者向量
2、ord,代表范数
向量的范数
ord=None | 默认 | 元素平方和。开根号 |
ord=2 | 2范数 | 同上 |
ord=1 | 1范数 | |x1|+|x2|+...+|xn| |
ord=np.inf | 无穷范数 | max(|xi|) |
矩阵的范数
ord=1 | 1范数 | 每列的元素绝对值相加,取和最大的 |
ord=2 | 2范数 | |λE-ATA|,求特征值,得到最大特征值的算术平方根 |
ord=np.inf | 无穷范数 | 每行的元素绝对值相加,取和最大的 |
3、axis代表向量
axis=None | 按矩阵处理,即求矩阵的范数 |
axis=0 | 按列向量处理,求每个列向量的向量范数 |
axis=1 | 按行向量处理,求每个行向量的向量范数 |
4、keepdims,保持矩阵的特性
实例代码:
import numpy as np
from numpy import linalg as la
a=np.array([[1,2],
[-4,5]])
print(la.norm(a,ord=1))
print(la.norm(a,ord=np.inf))
print(la.norm(a,ord=2))
print(la.norm(a,ord=np.inf,axis=0,keepdims=True))
print(la.norm(a,ord=np.inf,axis=1,keepdims=True))
print(la.norm(a,ord=1,axis=0,keepdims=True))
print(la.norm(a,ord=1,axis=1,keepdims=True))
输出:
7.0
9.0
6.4787086646190755
[[4. 5.]]
[[2.]
[5.]]
[[5. 7.]]
[[3.]
[9.]]