當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。