numpy.linalg.norm求范数

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.]]

 

你可能感兴趣的:(NumPy)