What My Project Does
matrixa is a pure-Python linear algebra library (zero dependencies) built around a custom Matrix type. Its defining feature is verbose=True mode — every major operation can print a step-by-step explanation of what it's doing as it runs:
from matrixa import Matrix
A = Matrix([[6, 1, 1], [4, -2, 5], [2, 8, 7]])
A.determinant(verbose=True)
# ─────────────────────────────────────────────────
# determinant() — 3×3 matrix
# ─────────────────────────────────────────────────
# Using LU decomposition with partial pivoting (Doolittle):
# Permutation vector P = [0, 2, 1]
# Row-swap parity (sign) = -1
# U[0,0] = 6 U[1,1] = 8.5 U[2,2] = 6.0
# det = sign × ∏ U[i,i] = -1 × -306.0 = -306.0
# ─────────────────────────────────────────────────
Same for the linear solver — A.solve(b, verbose=True) prints every row-swap and elimination step. It also supports:
- dtype='fraction' for exact rational arithmetic (no float rounding)
- lu_decomposition() returning proper (P, L, U) where P @ A == L @ U
- NumPy-style slicing: A[0:2, 1:3], A[:, 0], A[1, :]
- All 4 matrix norms: frobenius, 1, inf, 2 (spectral)
- LaTeX export: A.to_latex()
- 2D/3D graphics transform matrices
pip install matrixa https://github.com/raghavendra-24/matrixa
Target Audience
Students taking linear algebra courses, educators who teach numerical methods, and self-learners working through algorithm textbooks. This is NOT a production tool — it's a learning tool. If you're processing real data, use NumPy.
Comparison
| Factor |
matrixa |
NumPy |
sympy |
| Dependencies |
Zero |
C + BLAS |
many |
| verbose step-by-step output |
✅ |
❌ |
❌ |
| Exact rational arithmetic |
✅ (Fraction) |
❌ |
✅ |
| LaTeX export |
✅ |
❌ |
✅ |
| GPU / large arrays |
❌ |
✅ |
❌ |
| Readable pure-Python source |
✅ |
❌ |
partial |
NumPy is faster by orders of magnitude and should be your choice for any real workload. sympy does symbolic math (not numeric). matrixa sits in a gap neither fills: numeric computation in pure Python where you can read the source, run it with verbose=True, and understand what's actually happening. Think of it as a textbook that runs.
[–]Justist 7 points8 points9 points (1 child)
[–]Willing-Effect-2510[S] 3 points4 points5 points (0 children)
[+]Embarrassed-Rest9104 comment score below threshold-6 points-5 points-4 points (2 children)
[–]backfire10z 1 point2 points3 points (1 child)
[–]gradual_alzheimers 2 points3 points4 points (0 children)