numpy.linalg --- 線性代數常式¶
numpy.linalg 子模組提供少量可在 numpy.ndarray 物件上運作的線性代數常式。對矩陣運算的函式需要二維陣列;傳入維度不同的陣列會引發 ValueError。此子模組不支援複數 dtype。
函式¶
- numpy.linalg.cholesky(A: ndarray) ndarray¶
計算正定對稱方陣的 Cholesky 分解。
- 參數:
A -- 一個正定、對稱的二維方陣。
- 回傳:
一個下三角的
numpy.ndarrayL,使得A = L @ L.T。- 引發:
ValueError -- 若 A 不是方陣、不對稱,或不是正定。
- numpy.linalg.det(m: ndarray) float¶
計算方陣的行列式。
- 參數:
m -- 一個二維方陣。
- 回傳:
m 的行列式,以 Python
float表示。即使輸入為整數陣列,回傳值仍永遠為浮點數。- 引發:
ValueError -- 若 m 不是方陣。
此計算是透過帶部分主元選取的高斯消去法執行。
- numpy.linalg.eig(m: ndarray) tuple[ndarray, ndarray]¶
計算實對稱方陣的特徵值與特徵向量。
- 參數:
m -- 一個二維、實數、對稱的方陣。
- 回傳:
一個 2-tuple
(eigenvalues, eigenvectors)。eigenvalues是一個長度為N的一維陣列;eigenvectors是一個N乘N的陣列,其各欄為對應的特徵向量。- 引發:
ValueError -- 若 m 不是方陣、不對稱,或 Jacobi 旋轉迭代未能收斂。
- numpy.linalg.inv(m: ndarray) ndarray¶
計算方陣的反矩陣。
- 參數:
m -- 一個二維方陣。
- 回傳:
m 的反矩陣,以浮點數
numpy.ndarray表示。- 引發:
ValueError -- 若 m 不是方陣或為奇異矩陣。
反矩陣的計算是透過 Gauss-Jordan 消去法執行。
- numpy.linalg.norm(x: ndarray, axis: int | None = None) float | ndarray¶
計算向量或矩陣的 2-範數。
- 參數:
x -- 一個
numpy.ndarray、tuple、list或range。axis -- 可選的軸,沿著該軸計算範數。若為
None(預設值),則對展平後的輸入取範數並回傳單一的float。否則沿著該軸縮減範數並回傳一個numpy.ndarray。
- 回傳:
可能為 Python
float(當 axis 為None,或當 x 為 ndarray 以外的可迭代物件時),或為移除該軸後的numpy.ndarray。
2-範數的計算採用
sqrt(sum(x*x)),並使用數值穩定的執行中平均值,因此此運算不需要與輸入大小成比例的額外儲存空間。
- numpy.linalg.qr(m: ndarray, mode: str = 'reduced') tuple[ndarray, ndarray]¶
將矩陣分解為一個正規正交矩陣與一個上三角矩陣的乘積。
- 參數:
m -- 一個形狀為
(M, N)的二維矩陣。mode -- 可為
'reduced'(預設值)或'complete'。在'complete'模式下,Q的形狀為(M, M),R的形狀為(M, N)。在'reduced'模式下,Q與R會分別截斷至前min(M, N)欄與列。
- 回傳:
一個由
numpy.ndarray物件組成的 2-tuple(Q, R),使得m == Q @ R,其中Q為正規正交矩陣,R為上三角矩陣。- 引發:
TypeError -- 若 m 不是
numpy.ndarray。ValueError -- 若 m 不是二維,或 mode 不是可接受的值之一。
此分解透過連續的 Givens 旋轉實作。