linalg.
norm
矩阵或向量范数。
此函数可以返回八个不同的矩阵范数中的一个,或者返回无穷多个向量范数中的一个(如下所述),具体取决于 ord 参数。
ord
输入数组。如果 axis 没有, x 必须是一维或二维,除非 ord 没有。如果两者都有 axis 和 ord 是无,2-标准的 x.ravel 将被退回。
x.ravel
规范顺序(见下表 Notes )inf表示numpy's inf 对象。默认值为“无”。
Notes
如果 axis 是一个整数,它指定 x 计算向量范数。如果 axis 是一个2元组,它指定包含二维矩阵的轴,并计算这些矩阵的矩阵范数。如果 axis 为无,则为向量范数(当 x 是一维)或矩阵范数(当 x 返回。默认值为“无”。
1.8.0 新版功能.
如果设置为“真”,则忽略的轴将作为尺寸为1的尺寸保留在结果中。使用此选项,结果将正确广播到原始 x .
1.10.0 新版功能.
矩阵或向量的范数。
参见
scipy.linalg.norm
在SciPy中有类似的功能。
笔记
对于价值 ord < 1 严格来说,结果并不是一个数学的“范数”,但它对于各种数值目的仍然有用。
ord < 1
可计算出以下规范:
奥德
矩阵范数
向量范数
没有
弗罗宾纽斯范数
2-范数
“弗罗”
——
“NUC”
核规范
因弗
最大值(总和(abs(x),轴=1)
最大值(ABS(x))
-INF
最小值(总和(abs(x),轴=1)
最小(ABS(x))
0
总和(X)!= 0)
1
最大值(总和(abs(x),轴=0)
如下
-1
最小值(总和(abs(x),轴=0))
2
2-norm(最大单曲价值)
-2
最小奇异值
其他
和(ABS(x)) ord) (1。/ORD)
弗罗贝尼乌斯规范由 [1]:
核规范是奇异值的总和。
Frobenius和nuclear范数阶都只对矩阵定义,当 x.ndim != 2 .
x.ndim != 2
工具书类
G.H.Golub和C.F.Van Loan, 矩阵计算 ,巴尔的摩,医学博士,约翰霍普金斯大学出版社,1985年,第15页
实例
>>> from numpy import linalg as LA >>> a = np.arange(9) - 4 >>> a array([-4, -3, -2, ..., 2, 3, 4]) >>> b = a.reshape((3, 3)) >>> b array([[-4, -3, -2], [-1, 0, 1], [ 2, 3, 4]])
>>> LA.norm(a) 7.745966692414834 >>> LA.norm(b) 7.745966692414834 >>> LA.norm(b, 'fro') 7.745966692414834 >>> LA.norm(a, np.inf) 4.0 >>> LA.norm(b, np.inf) 9.0 >>> LA.norm(a, -np.inf) 0.0 >>> LA.norm(b, -np.inf) 2.0
>>> LA.norm(a, 1) 20.0 >>> LA.norm(b, 1) 7.0 >>> LA.norm(a, -1) -4.6566128774142013e-010 >>> LA.norm(b, -1) 6.0 >>> LA.norm(a, 2) 7.745966692414834 >>> LA.norm(b, 2) 7.3484692283495345
>>> LA.norm(a, -2) 0.0 >>> LA.norm(b, -2) 1.8570331885190563e-016 # may vary >>> LA.norm(a, 3) 5.8480354764257312 # may vary >>> LA.norm(a, -3) 0.0
使用 axis 计算向量规范的参数:
>>> c = np.array([[ 1, 2, 3], ... [-1, 1, 4]]) >>> LA.norm(c, axis=0) array([ 1.41421356, 2.23606798, 5. ]) >>> LA.norm(c, axis=1) array([ 3.74165739, 4.24264069]) >>> LA.norm(c, ord=1, axis=1) array([ 6., 6.])
使用 axis 计算矩阵规范的参数:
>>> m = np.arange(8).reshape(2,2,2) >>> LA.norm(m, axis=(1,2)) array([ 3.74165739, 11.22497216]) >>> LA.norm(m[0, :, :]), LA.norm(m[1, :, :]) (3.7416573867739413, 11.224972160321824)