Dear numpy community,
 
I'm happy to announce the first public release of einops package.
einops is a new way to manipulate tensors.
 
Examples with numpy worth a thousand words:
https://github.com/arogozhnikov/einops/blob/master/docs/1-einops-basics.ipynb
 
einops introduces a special notation which includes composition and decomposition of axes.
This notation allows non-trivial rearrangement of elements, which can be combined with reductions.
 
Goal of the project is to provide a way to write a more readable and maintainable code with additional checks,
which works consistently and uniformly across a set of popular tensor packages.
 
It should also complement well existing deep learning packages when operations are missing
or when extensive usage of transpose/reshapes/broadcasts drives to hardly readable and (frequently) buggy code.
 
Would be happy to hear feedback.
 
Regards,
Alex Rogozhnikov
 
 
Project page: https://github.com/arogozhnikov/einops