Skip to content

Latest commit

 

History

436 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scientific-computing-system

scientific-computing-system

A pure-Python computational science platform for numerical methods, modeling, validation, uncertainty, scientific workflows, dimensional analysis, and reproducible research.

PyPI version npm version Python 3.10+ codecov CI License: MIT Docs GitHub release

Download counts: PyPI stats

I wrote this because NumPy and SciPy are incredible, but they're also 20 years old and carry two decades of design decisions that don't always make sense anymore.

This is a from-scratch rethinking of what scientific computing in Python could look like if we started today. No C extensions, no Fortran legacy, no dependency hell. Just Python, type hints, and algorithms that are actually readable.

What's inside

  • Linear algebra: SVD, QR, Cholesky, eigenvalues-all implemented in pure Python with proper error handling
  • Optimization: gradient descent, constrained optimization, metaheuristics
  • Statistics: hypothesis testing, Bayesian inference, time series
  • Machine learning: PCA, clustering, simple neural nets (educational, not production)
  • Quantum computing: circuit simulation, state vectors, basic gates
  • Signal processing: filters, wavelets, STFT
  • ODE/PDE solvers: stiff and non-stiff, symplectic integrators

Quick Start

pip install scientific-computing-system
from scs.linear_algebra import svd
from scs.ode import solve_ivp
from scs.stats import bayesian_posterior

# every algorithm is readable pure Python — open the source, see the math
U, S, Vt = svd(matrix, full_matrices=False)

solution = solve_ivp(
    lambda t, y: [y[1], -y[0] - 0.1 * y[1]],  # damped oscillator
    t_span=(0, 50),
    y0=[1.0, 0.0],
    method="rk45",
    rtol=1e-8,
)

Also on npm: npm i scientific-computing-system. Full docs: furox-art.github.io/scientific-computing-system.

Common use cases

  • Learn and inspect numerical methods in pure Python without compiled extensions.
  • Prototype scientific computing workflows with transparent implementations.
  • Explore ODE/PDE solvers, numerical integration, optimization, Monte Carlo, signal processing, and linear algebra.
  • Run statistics, uncertainty quantification, sensitivity analysis, dimensional analysis, and reproducible research workflows.
  • Teach or audit algorithms where readable source code matters more than raw NumPy/SciPy performance.

The catch

It's slower than NumPy. Sometimes 10x slower, sometimes 100x. That's the price of pure Python. But it's also completely transparent-you can read every algorithm, understand every step, and modify anything without compiling C.

I use it for prototyping, for teaching, and for cases where I need to know exactly what the computer is doing. For production number crunching, I still reach for NumPy.

License

MIT.

About

Pure-Python scientific computing with zero runtime dependencies: numerical linear algebra, ODE/PDE solvers, quadrature, statistics, uncertainty quantification, Monte Carlo, signal processing, quantum and classical ML.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages