Repository github.com/sympy/sympy | Development status Active | |
![]() | ||
Developer(s) Independent group of people Initial release 2007; 10 years ago (2007) Stable release 1.0 / March 8, 2016; 12 months ago (2016-03-08) |
SymPy is a Python library for symbolic computation. It provides computer algebra capabilities either as a standalone application, as a library to other applications, or live on the web as SymPy Live or SymPy Gamma. SymPy is trivial to install and to inspect because it is written entirely in Python with few dependencies. This ease of access combined with a simple and extensible code base in a well known language make SymPy a computer algebra system with a relatively low barrier to entry.
Contents
- Features
- Core capabilities
- Polynomials
- Calculus
- Solving equations
- Discrete math
- Matrices
- Geometry
- Plotting
- Physics
- Statistics
- Combinatorics
- Printing
- Related projects
- Dependencies
- Pretty printing
- References
SymPy includes features ranging from basic symbolic arithmetic to calculus, algebra, discrete mathematics and quantum physics. It is capable of formatting the result of the computations as LaTeX code.
SymPy is free software and is licensed under New BSD License. The lead developers are Ondřej Čertík and Aaron Meurer.
Features
The SymPy library is split into a core with many optional modules.
Currently, the core of SymPy has around 260,000 lines of code (also includes a comprehensive set of self-tests: over 100,000 lines in 350 files as of version 0.7.5), and its capabilities include:
Core capabilities
Polynomials
Calculus
Solving equations
Discrete math
Matrices
Geometry
Plotting
Note, plotting requires the external matplotlib or Pyglet module.
Physics
Statistics
Combinatorics
Printing
Related projects
Dependencies
Since version 1.0, SymPy has the mpmath package as a dependency.
There are several optional dependencies that can enhance its capabilities:
Pretty-printing
Sympy allows outputs to be formatted into a more appealing format through the pprint
function. Alternatively, the init_printing()
method will enable pretty-printing, so pprint
need not be called. Pretty-printing will use unicode symbols when available in the current environment, otherwise it will fall back to ASCII characters.