arogozhnikov/einops

Flexible and powerful tensor operations for readable and reliable code (for pytorch, jax, TF and others)

77
/ 100
Verified

Provides `rearrange`, `reduce`, and `repeat` operations using Einstein-notation syntax that makes tensor manipulations self-documenting—axes are explicitly named rather than indexed, preventing shape-mismatch bugs. Implements a unified API across 10+ frameworks (PyTorch, JAX, TensorFlow, NumPy, MLX, etc.) via backend abstraction, with framework-specific layers that integrate seamlessly into model definitions and support `torch.compile`. Also includes `pack`/`unpack` for reversibly combining tensors of different dimensionality and `einsum` with multi-letter axis names.

9,425 stars and 24,198,609 monthly downloads. Used by 211 other packages. Available on PyPI.

Maintenance 10 / 25
Adoption 25 / 25
Maturity 25 / 25
Community 17 / 25

How are scores calculated?

Stars

9,425

Forks

396

Language

Python

License

MIT

Last pushed

Feb 20, 2026

Monthly downloads

24,198,609

Commits (30d)

0

Reverse dependents

211

Get this data via API

curl "https://pt-edge.onrender.com/api/v1/quality/ml-frameworks/arogozhnikov/einops"

Open to everyone — 100 requests/day, no key needed. Get a free key for 1,000/day.