当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy linalg.norm用法及代码示例


本文简要介绍 python 语言中 scipy.sparse.linalg.norm 的用法。

用法:

scipy.sparse.linalg.norm(x, ord=None, axis=None)#

稀疏矩阵的范数

此函数能够返回七种不同的矩阵范数之一,具体取决于ord 参数的值。

参数

x 稀疏矩阵

输入稀疏矩阵。

ord {非零整数,inf,-inf,‘fro’},可选

规范的顺序(见下表Notes)。 inf 表示 numpy 的inf对象。

axis {int, 2-tuple of ints, None}, 可选

如果axis是一个整数,它指定x的轴,沿着它计算向量范数。如果axis是一个2元组,它指定保存二维矩阵的轴,并计算这些矩阵的矩阵范数。如果axis为None,则返回向量范数(当x为一维时)或矩阵范数(当x为二维时)。

返回

n 浮点数或 ndarray

注意

一些 ord 没有实现,因为一些相关的函数,如 _multi_svd_norm,还不能用于稀疏矩阵。

此文档字符串是基于 numpy.linalg.norm 修改的。https://github.com/numpy/numpy/blob/main/numpy/linalg/linalg.py

可以计算以下规范:

ord

稀疏矩阵的范数

None

弗罗贝尼乌斯范数

‘fro’

弗罗贝尼乌斯范数

inf

最大值(总和(绝对值(x),轴 = 1))

-inf

最小值(总和(绝对值(x),轴 = 1))

0

abs(x).sum(轴=轴)

1

最大值(总和(绝对值(x),轴 = 0))

-1

最小值(总和(绝对值(x),轴 = 0))

2

谱范数(最大奇异值)

-2

未实现

other

未实现

Frobenius 范数由 [1] 给出:

参考

[1]

G. H. Golub 和 C. F. Van Loan,矩阵计算,马里兰州巴尔的摩,约翰霍普金斯大学出版社,1985 年,第 页。 15

例子

>>> from scipy.sparse import *
>>> import numpy as np
>>> from scipy.sparse.linalg import norm
>>> 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]])
>>> b = csr_matrix(b)
>>> norm(b)
7.745966692414834
>>> norm(b, 'fro')
7.745966692414834
>>> norm(b, np.inf)
9
>>> norm(b, -np.inf)
2
>>> norm(b, 1)
7
>>> norm(b, -1)
6

矩阵 2-范数或谱范数是最大奇异值,是近似计算且有限制的。

>>> b = diags([-1, 1], [0, 1], shape=(9, 10))
>>> norm(b, 2)
1.9753...

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.sparse.linalg.norm。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。