numpy.linalg --- 線性代數常式

numpy.linalg 子模組提供少量可在 numpy.ndarray 物件上運作的線性代數常式。對矩陣運算的函式需要二維陣列;傳入維度不同的陣列會引發 ValueError。此子模組不支援複數 dtype。

函式

numpy.linalg.cholesky(A: ndarray) ndarray

計算正定對稱方陣的 Cholesky 分解。

參數:

A -- 一個正定、對稱的二維方陣。

回傳:

一個下三角的 numpy.ndarray L,使得 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 是一個 NN 的陣列,其各欄為對應的特徵向量。

引發:

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.ndarraytuplelistrange

  • axis -- 可選的軸,沿著該軸計算範數。若為 None(預設值),則對展平後的輸入取範數並回傳單一的 float。否則沿著該軸縮減範數並回傳一個 numpy.ndarray

回傳:

可能為 Python float(當 axisNone,或當 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' 模式下,QR 會分別截斷至前 min(M, N) 欄與列。

回傳:

一個由 numpy.ndarray 物件組成的 2-tuple (Q, R),使得 m == Q @ R,其中 Q 為正規正交矩陣,R 為上三角矩陣。

引發:

此分解透過連續的 Givens 旋轉實作。