jax.numpy.linalg.matrix_rank#

jax.numpy.linalg.matrix_rank(M, rtol=None, *, tol=Deprecated)[原始碼]#

計算矩陣的秩。

JAX 版本的 numpy.linalg.matrix_rank()

秩是透過奇異值分解 (SVD) 計算,並由大於指定容差的奇異值數量決定。

參數:
  • M (ArrayLike) – 形狀為 (..., N, K) 的陣列,其秩將被計算。

  • rtol (ArrayLike | None) – 可選的形狀為 (...) 的陣列,指定容差。小於 rtol * largest_singular_value 的奇異值被視為零。如果 rtol 為 None (預設值),則會根據輸入的浮點精度選擇合理的預設值。

  • tol (ArrayLike | DeprecatedArg | None) – 已棄用的 rtol 參數別名。如果使用,將導致 DeprecationWarning

返回:

形狀為 a.shape[-2] 的陣列,表示矩陣的秩。

返回型別:

Array

筆記

對於具有非常小的奇異值或數值條件不佳的矩陣,秩計算可能不準確。在這種情況下,請考慮調整 rtol 參數或使用更專業的秩計算方法。

範例

>>> a = jnp.array([[1, 2],
...                [3, 4]])
>>> jnp.linalg.matrix_rank(a)
Array(2, dtype=int32)
>>> b = jnp.array([[1, 0],  # Rank-deficient matrix
...                [0, 0]])
>>> jnp.linalg.matrix_rank(b)
Array(1, dtype=int32)