Python中np.linalg.norm()怎么使用
这篇文章主要介绍“Python中np.linalg.norm()怎么使用”,在日常操作中,相信很多人在Python中np.linalg.norm()怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中np.linalg.norm()怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
前言
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))
Result:
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()怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注蜗牛博客网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论