scipy.sparse.linalg.
norm#
- scipy.sparse.linalg.norm(x, ord=None, axis=None)[原始碼]#
稀疏矩陣的範數
此函數能夠根據
ord
參數的值,傳回七種不同的矩陣範數之一。- 參數:
- x一個稀疏陣列
輸入稀疏陣列。
- ord{非零整數, inf, -inf, ‘fro’}, 可選
範數的階數(請參閱
Notes
下的表格)。inf 表示 numpy 的 inf 物件。- axis{整數, 2 元組整數, None}, 可選
如果 axis 是一個整數,它指定了計算向量範數的 x 的軸。如果 axis 是一個 2 元組,它指定了保存 2-D 矩陣的軸,並計算這些矩陣的矩陣範數。如果 axis 為 None,則返回向量範數(當 x 為 1-D 時)或矩陣範數(當 x 為 2-D 時)。
- 返回:
- n浮點數或 ndarray
註解
某些 ord 未實作,因為某些相關函數(例如 _multi_svd_norm)尚不適用於稀疏陣列。
此文件字串基於 numpy.linalg.norm 修改。numpy/numpy
可以計算以下範數
ord
稀疏陣列的範數
None
Frobenius 範數
‘fro’
Frobenius 範數
inf
max(sum(abs(x), axis=1))
-inf
min(sum(abs(x), axis=1))
0
abs(x).sum(axis=axis)
1
max(sum(abs(x), axis=0))
-1
min(sum(abs(x), axis=0))
2
譜範數(最大的奇異值)
-2
未實作
其他
未實作
Frobenius 範數由 [1] 給出
\(||A||_F = [\sum_{i,j} abs(a_{i,j})^2]^{1/2}\)
參考文獻
[1]G. H. Golub and C. F. Van Loan, Matrix Computations, Baltimore, MD, Johns Hopkins University Press, 1985, pg. 15
範例
>>> from scipy.sparse import csr_array, diags_array >>> 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_array(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_array([-1, 1], [0, 1], shape=(9, 10)) >>> norm(b, 2) 1.9753...