Aesara is a Python library that allows you to define, optimize/rewrite, and evaluate mathematical expressions involving multi-dimensional arrays efficiently.

Some of Aesara’s features are:

  • Tight integration with NumPy - Use numpy.ndarray in Aesara-compiled functions
  • Efficient symbolic differentiation - Aesara efficiently computes your derivatives for functions with one or many inputs
  • Speed and stability optimizations - Get the right answer for log(1 + x) even when x is near zero
  • Dynamic C/JAX/Numba code generation - Evaluate expressions faster

Aesara is based on Theano, which has been powering large-scale computationally intensive scientific investigations since 2007.


Much of the documentation hasn’t been updated and is simply the old Theano documentation.


Aesara is available on PyPI, and can be installed via pip install Aesara.

Those interested in bleeding-edge features should obtain the latest development version, available via:

git clone git://github.com/aesara-devs/aesara.git

You can then place the checkout directory on your $PYTHONPATH or use python setup.py develop to install a .pth into your site-packages directory, so that when you pull updates via Git, they will be automatically reflected the “installed” version. For more information about installation and configuration, see installing Aesara.


Roughly in order of what you’ll want to check out: