linalg.norm
ord |
矩阵范数 |
向量范数 |
---|---|---|
None |
Frobenius范数 |
2-范数 |
‘fro’ |
Frobenius范数 |
- |
‘nuc’ |
核范数 |
- |
inf |
max(sum(abs(x), axis=1)) |
max(abs(x)) |
-inf |
min(sum(abs(x), axis=1)) |
min(abs(x)) |
0 |
- |
sum(x != 0) |
1 |
max(sum(abs(x), axis=0)) |
sum(abs(x)**ord)**(1./ord) |
-1 |
min(sum(abs(x), axis=0)) |
sum(abs(x)**ord)**(1./ord) |
2 |
2-范数(奇异值的最大值) |
sum(abs(x)**ord)**(1./ord) |
-2 |
奇异值的最小值 |
sum(abs(x)**ord)**(1./ord) |
其他 |
- |
sum(abs(x)**ord)**(1./ord) |
必选输入参数
参数名 |
类型 |
说明 |
---|---|---|
x |
array_like |
输入数组。
|
可选输入参数
参数名 |
类型 |
默认值 |
说明 |
---|---|---|---|
ord |
{non-zero int, inf, -inf, ‘fro’, ‘nuc’} |
None |
请参见表1。 |
axis |
{None, int, 2-tuple of ints} |
None |
|
keepdims |
bool |
False |
如果将其设置为True,则在结果中将作为尺寸为1的维度留在结果中。使用此选项,结果将正确地针对原始x广播。 |
返回数据
类型 |
说明 |
---|---|
float or ndarray |
矩阵/向量范数。 |
示例
>>> import numpy as np >>> a = np.arange(9) - 4 >>> a array([-4, -3, -2, -1, 0, 1, 2, 3, 4]) >>> b = a.reshape((3,3)) >>> b array([[-4, -3, -2], [-1, 0, 1], [ 2, 3, 4]]) >>> >>> np.linalg.norm(a) 7.745966692414834 >>> np.linalg.norm(b) 7.745966692414834 >>> np.linalg.norm(b, 'fro') 7.745966692414834 >>> np.linalg.norm(a, np.inf) 4.0 >>> np.linalg.norm(b, np.inf) 9.0 >>> np.linalg.norm(a, -np.inf) 0.0 >>> np.linalg.norm(b, -np.inf) 2.0 >>> >>> np.linalg.norm(a, 1) 20.0 >>> np.linalg.norm(b, 1) 7.0 >>> np.linalg.norm(b, -1) 6.0 >>> np.linalg.norm(a, 2) 7.745966692414834 >>> np.linalg.norm(b, 2) 7.348469228349533 >>> np.linalg.norm(a, -2) 0.0 >>> np.linalg.norm(b, -2) 3.757577037301703e-16 >>> >>> c = np.array([[1,2,3], [-1,1,4]]) >>> np.linalg.norm(c, axis=0) array([1.41421356, 2.23606798, 5. ]) >>> np.linalg.norm(c, axis=1) array([3.74165739, 4.24264069]) >>> np.linalg.norm(c, ord=1, axis=1) array([6., 6.]) >>> >>> >>> m = np.arange(8).reshape(2,2,2) >>> m array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]]) >>> np.linalg.norm(m, axis=(1,2)) array([ 3.74165739, 11.22497216]) >>> np.linalg.norm(m[0, :, :]) 3.7416573867739413 >>> np.linalg.norm(m[1, :, :]) 11.224972160321824 >>>
父主题: 线性代数函数