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
>>>
父主题: 线性代数函数