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 * 最大奇异值 的奇异值被视为零。如果rtol
为 None(默认),则会根据输入的浮点精度选择一个合理的默认值。tol (ArrayLike | DeprecatedArg | None) –
rtol
参数的已弃用别名。如果使用,将导致DeprecationWarning
。
- 返回:
形状为
a.shape[-2]
的数组,表示矩阵的秩。- 返回类型:
备注
对于奇异值非常小或数值上条件不佳的矩阵,秩的计算可能不准确。在这种情况下,考虑调整
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)