Python中np.linalg.norm()用法实例总结

阿麦
阿麦
发布时间:2026-10-16 | 5人浏览过
原创

本文详细介绍Python中numpy库的np.linalg.norm()函数,涵盖其求范数的核心功能。文章解析了x、ord、axis和keepdims四个关键参数的含义,并通过具体代码示例演示了默认状态、改变axis、ord及keepdims时的计算结果,帮助开发者掌握向量与矩阵范数的计算方法。

前言

np.linalg.norm()函数主要用于计算范数,其中linalg代表linear(线性)与algebra(代数)的组合,norm则指代范数这一数学概念。

用法

np.linalg.norm(x, ord=None, axis=None, keepdims=False)

1. x:表示输入的矩阵,一维数据同样适用。

2. ord:指定范数的类型。

向量的范数计算方式如下:

矩阵的向量处理逻辑:

  • 当ord=1时,计算结果为各列元素绝对值之和的最大值。
  • 当ord=2时,需计算|λE-ATA|=0的特征值,取最大特征值的算术平方根。
  • 当ord=∞时,计算结果为各行元素绝对值之和的最大值。
  • 当ord=None时,计算整个矩阵所有元素平方和的平方根。

3. axis:指定计算范数的轴。

参数含义
0表示按列向量来进行处理,求多个列向量的范数
1表示按行向量来进行处理,求多个行向量的范数
None表示整个矩阵的范数

4. keepdims:布尔值,用于控制是否保持矩阵的二维特性。设为True则保持,False则不保持,默认值为False。

例子

1. 使用默认参数状态:

import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X))

运行结果:

2. 修改axis参数:

import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, axis=1))
import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, axis=0))

3. 修改ord参数:

import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, ord=1))
import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, ord=2))

4. 修改keepdims参数:

import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, axis=0, keepdims=True))
import numpy as np
X = [[1, 2, 3], [4, 5, 6]]
print(np.linalg.norm(X, axis=0))

注意:严格来说,当 ord <= 0 时,不符合数学上的范数公式,但它仍然适用于各种数值目的。

import numpy as np
a = np.arange(12)
print(a)
b = a.reshape((3, 4))
print(b)
print(np.linalg.norm(a))
print(np.linalg.norm(b))
print(np.linalg.norm(b, 'fro'))
print(np.linalg.norm(b, 'nuc'))

print(np.linalg.norm(a, np.inf))
print(np.linalg.norm(a, -np.inf))
print(np.linalg.norm(a, 1))

print(np.linalg.norm(b, np.inf, axis=1))
print(np.linalg.norm(b, -np.inf, axis=0))
print(np.linalg.norm(b, 1))

[ 0 1 2 3 4 5 6 7 8 9 10 11] [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] 22.4944437584 22.4944437584 22.4944437584 24.3646384993 11.0 0.0 66.0 [ 3. 7. 11.] [ 0. 1. 2. 3.] 21.0

总结

到此这篇关于Python中np.linalg.norm()用法实例的文章就介绍到这了,更多相关Python np.linalg.norm()用法内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表