本文简要介绍 python 语言中 scipy.linalg.norm
的用法。
用法:
scipy.linalg.norm(a, ord=None, axis=None, keepdims=False, check_finite=True)#
矩阵或向量范数。
根据
ord
范围。对于秩不同于 1 或 2 的张量,仅ord=无支持。- a: array_like
输入数组。如果轴是无,a必须是一维或二维,除非ord是无。如果两者轴和ord是无,的 2 范数
a.ravel
将被退回。- ord: {int,inf,-inf,‘fro’, ‘nuc’,无},可选
规范的顺序(见下表
Notes
)。 inf 表示 NumPy 的inf对象。- axis: {int, 2-tuple of ints, None}, 可选
如果axis是一个整数,它指定计算向量范数的轴。如果axis是一个2元组,它指定保存二维矩阵的轴,并计算这些矩阵的矩阵范数。如果axis为None,则返回向量范数(当a为一维时)或矩阵范数(当a为二维时)。
- keepdims: 布尔型,可选
如果将其设置为 True,则规范化的轴将作为尺寸为 1 的尺寸留在结果中。使用此选项,结果将针对原始 a 正确广播。
- check_finite: 布尔型,可选
是否检查输入矩阵是否仅包含有限数。禁用可能会提高性能,但如果输入确实包含无穷大或 NaN,则可能会导致问题(崩溃、非终止)。
- n: 浮点数或 ndarray
矩阵或向量的范数。
参数 ::
返回 ::
注意:
对于
ord <= 0
的值,严格来说,结果不是数学上的 ‘norm’,但它对于各种数值目的可能仍然有用。可以计算以下规范:
ord
矩阵的范数
向量的范数
None
弗罗贝尼乌斯范数
2范数
‘fro’
弗罗贝尼乌斯范数
-
‘nuc’
核规范
-
inf
最大值(总和(绝对值(a),轴 = 1))
最大值(绝对值(a))
-inf
最小值(总和(绝对值(a),轴 = 1))
分钟(绝对值(a))
0
-
总和(一个!= 0)
1
最大值(总和(绝对值(a),轴 = 0))
如下
-1
最小值(总和(绝对值(a),轴 = 0))
如下
2
2-范数(最大单值)
如下
-2
最小奇异值
如下
other
-
总和(abs(a)**ord)**(1./ord)
Frobenius 范数由 [1] 给出:
核范数是奇异值的总和。
Frobenius 和核范数阶都只为矩阵定义。
参考:
[1]G. H. Golub 和 C. F. Van Loan,矩阵计算,马里兰州巴尔的摩,约翰霍普金斯大学出版社,1985 年,第 页。 15
例子:
>>> import numpy as np >>> from scipy.linalg import norm >>> a = np.arange(9) - 4.0 >>> 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.]])
>>> norm(a) 7.745966692414834 >>> norm(b) 7.745966692414834 >>> norm(b, 'fro') 7.745966692414834 >>> norm(a, np.inf) 4 >>> norm(b, np.inf) 9 >>> norm(a, -np.inf) 0 >>> norm(b, -np.inf) 2
>>> norm(a, 1) 20 >>> norm(b, 1) 7 >>> norm(a, -1) -4.6566128774142013e-010 >>> norm(b, -1) 6 >>> norm(a, 2) 7.745966692414834 >>> norm(b, 2) 7.3484692283495345
>>> norm(a, -2) 0 >>> norm(b, -2) 1.8570331885190563e-016 >>> norm(a, 3) 5.8480354764257312 >>> norm(a, -3) 0
相关用法
- Python SciPy linalg.null_space用法及代码示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代码示例
- Python SciPy linalg.cdf2rdf用法及代码示例
- Python SciPy linalg.LaplacianNd用法及代码示例
- Python SciPy linalg.solve_circulant用法及代码示例
- Python SciPy linalg.polar用法及代码示例
- Python SciPy linalg.clarkson_woodruff_transform用法及代码示例
- Python SciPy linalg.rsf2csf用法及代码示例
- Python SciPy linalg.hessenberg用法及代码示例
- Python SciPy linalg.tril用法及代码示例
- Python SciPy linalg.triu用法及代码示例
- Python SciPy linalg.svd用法及代码示例
- Python SciPy linalg.ishermitian用法及代码示例
- Python SciPy linalg.invhilbert用法及代码示例
- Python SciPy linalg.factorized用法及代码示例
- Python SciPy linalg.lu_factor用法及代码示例
- Python SciPy linalg.SuperLU用法及代码示例
- Python SciPy linalg.lsqr用法及代码示例
- Python SciPy linalg.cho_factor用法及代码示例
- Python SciPy linalg.fractional_matrix_power用法及代码示例
- Python SciPy linalg.eig_banded用法及代码示例
- Python SciPy linalg.tanhm用法及代码示例
- Python SciPy linalg.orthogonal_procrustes用法及代码示例
- Python SciPy linalg.use_solver用法及代码示例
- Python SciPy linalg.qr_multiply用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.linalg.norm。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。