Numpoly is a generic library for creating, manipulating and evaluating arrays of polynomials based on numpy.ndarray objects.

The documentation consist of the following parts:

  • Intuitive interface for users experienced with numpy, as the library provides a high level of compatibility with the numpy.ndarray, including fancy indexing, broadcasting, numpy.dtype, vectorized operations to name a few.

  • Computationally fast evaluations of lots of functionality inherent from numpy.

  • Vectorized polynomial evaluation.

  • Support for arbitrary number of dimensions.

  • Native support for lots of numpy.<name> functions using numpy’s compatibility layer (which also exists as numpoly.<name> equivalents).

  • Support for polynomial division through the operators /, % and divmod.

  • Extra polynomial specific attributes exposed on the polynomial objects like exponents, coefficients, indeterminants etc.

  • Polynomial derivation through functions like numpoly.derivative(), numpoly.gradient(), numpoly.hessian() etc.

  • Decompose polynomial sums into vector of addends usin numpoly.decompose().

  • Variable substitution through


Installation should be straight forward from pip:

pip install numpoly

For developer installation, go to the numpoly repository. Otherwise, check out the user guide to see how to use the toolbox.