arogozhnikov/einops

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

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 11 minutes ago
Added to GitGenius on September 6th, 2026
Created on September 22nd, 2018
Open Issues & Pull Requests: 38 (+0)
GitHub issues: Enabled
Number of forks: 399
Total Stargazers: 9,591 (+0)
Total Subscribers: 66 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 11.5 hours
Mean response time: 59.4 days
90th percentile: 123.4 days
Tracked items: 69

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 95% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 7% of issues opened in the past year have been closed. Three people close 85% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 20
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,248 days
Stale 30+ days: 20
Stale 90+ days: 19

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • feature suggestion (22)
  • bug (8)
  • question (5)
  • backend bug (4)
  • wontfix (2)
  • enhancement (1)
  • good first issue (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

einops is a tensor manipulation library that provides readable and expressive operations for deep learning frameworks including PyTorch, JAX, TensorFlow, NumPy, and others.

The library addresses the problem of writing tensor reshaping and rearrangement code that is both clear and maintainable. Traditional tensor operations often require developers to manually track dimensions and write error-prone index manipulations. einops solves this by introducing a notation-based approach where operations are expressed using Einstein summation-like syntax, making the intent of tensor transformations explicit and self-documenting. The library handles the underlying implementation details across different frameworks, allowing the same code to work with multiple backends.

Developers should adopt einops if they work regularly with multidimensional arrays and want to reduce bugs related to dimension handling. It suits any project using NumPy, PyTorch, JAX, TensorFlow, MLX, or other supported frameworks where tensor reshaping, transposition, or rearrangement is common. The tool is particularly valuable in deep learning workflows where complex tensor operations are frequent. The library includes specialized operations like packing and unpacking for advanced use cases, and supports modern features such as torch.compile and the array API standard.

The project maintains active development with regular updates introducing new backends and features. Testing infrastructure is in place with continuous integration workflows. The tool has gained substantial adoption across the ecosystem, with documentation available both online and through interactive browser-based notebooks. Recent work has focused on improving type annotations and expanding framework support to include emerging platforms.