mojolearn.lstsq#
- mojolearn.lstsq(a, b, rcond=None, *, numeric_mode=None)[source]#
Least-squares solution of
a @ x = b.Follows
numpy.linalg.lstsq, solved through the SVD ofa. Singular values at or belowrcond * s.max()are treated as zero.- Parameters:
a (array-like of shape (M, N))
b (array-like of shape (M,) or (M, K))
rcond (float or None, default None) – Relative cutoff for small singular values. None uses float32 machine epsilon times
max(M, N).numeric_mode ({“identical”, “fast”} or None, default None) – Numeric mode for this call. None uses the package default (
"identical"unless changed)."identical"gives the same bits on NVIDIA and AMD GPUs;"fast"applies on Apple GPUs.
- Returns:
x (ndarray of shape (N,) or (N, K), float32)
residuals (ndarray of shape (K,) or (0,), float32) – Squared column norms of
b - a @ xwhenrank == N < M; otherwise empty.rank (int) – Effective rank of
a.s (ndarray of shape (min(M, N),), float32) – Singular values of
a, descending.
- Raises:
ValueError – If
aandbhave different numbers of rows.
Examples
>>> import numpy as np, mojolearn >>> rng = np.random.default_rng(0) >>> A = rng.random((100, 4), dtype=np.float32) >>> x, res, rank, s = mojolearn.lstsq(A, rng.random(100, dtype=np.float32))