Skip to content

VascoSch92/awesome_python_math_packages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

67 Commits
Β 
Β 
Β 
Β 

Repository files navigation

Awesome Python Math Packages Awesome

An awesome list which group together all python packages that deal with mathematics.

If you find errors, or you would like to add an item to the list, please feel free to contact me or create a PR directly.

The document is divided in the following sections:


Algebra

  • abstract_algebra: Abstract Algebra: An implementation of Finite Algebras: Groups, Rings, Fields, Vector Spaces, Modules, Monoids, Semigroups, and Magmas
  • clifford: Geometric Algebra (Clifford algebra) for Python
  • fxpmath: A Python library for fractional fixed-point (base 2) arithmetic and binary manipulation
  • galgebra: Symbolic Geometric Algebra/Calculus package for SymPy
  • Galois: A performant NumPy extension for Galois fields and their applications
  • Hypercomplex: A Python library for working with arbitrary-dimension hypercomplex numbers following the Cayley-Dickson construction of algebras
  • jaxga: Geometric Algebra package for JAX
  • pixell: A rectangular pixel map manipulation and harmonic analysis library derived from Sigurd Naess' enlib
  • Plabic: Cluster algebraic/geometric structures related to plabic graphs
  • PyFinite: Finite field math in python including generic matrix operations and Reed-Solomon error correcting codes
  • PyQuaternion: A fully featured, pythonic library for representing and using quaternions
  • PyOctonion: Python Library for octonion
  • multivar_horner: Python package implementing a multivariate Horner scheme for efficiently evaluating multivariate polynomials
  • Quaternion: Add built-in support for quaternions to numpy

Analysis

  • dedalus: A flexible framework for solving PDEs with modern spectral methods
  • diffrax: Numerical differential equation solvers in JAX; autodifferentiable and GPU-capable
  • dolfinx: Next generation FEniCS problem solving environment for solving PDEs with the finite element method
  • findiff: Python package for numerical derivatives and partial differential equations in any number of dimensions
  • foof: Parameterizing neural power spectra into periodic & aperiodic components
  • harmonica: Forward modeling, inversion, and processing gravity and magnetic data
  • MutatorMath: Python library for piecewise linear interpolation in multiple dimensions with multiple, arbitrarily placed, masters.
  • PyAbel: A python package for Abel and inverse Abel transforms
  • pykoopman: A package for computing data-driven approximations to the Koopman operator
  • py-pde: Python package for solving partial differential equations using finite differences
  • quadpy: Numerical integration (quadrature, cubature) in Python
  • scikit-fmm: A Python extension module implementing the fast marching method
  • sfepy: SfePy is a software for solving systems of coupled partial differential equations (PDEs) by the finite element method in 1D, 2D and 3D
  • SHTOOLS: Spherical Harmonic Tools
  • torchsde: Differentiable SDE solvers with GPU support and efficient sensitivity analysis

Animations and Images

  • Blender_ParadoxToolkit: A toolkit to create 3D optical illusion in Blender
  • Fourier-and-Images: Fourier and Images
  • Hyperbolic: A Python 3 library for constructing and drawing hyperbolic geometry
  • Hyperbolic wythoff: Draw the Wythoff construction of uniform tilings in hyperbolic plane
  • MathArtist: Tool for generating pictures using mathematical formulas
  • Maige: Python package to generate math based images
  • Manim: A community-maintained Python framework for creating mathematical animations
  • visma-VISual MAth: an equation solver and visualizer

Dynamical Systems

  • parcels: Main code for Parcels (Probably A Really Computationally Efficient Lagrangian Simulator)
  • PyNamical: Pynamical is a Python package for modeling and visualizing discrete nonlinear dynamical systems, chaos, and fractals

General Mathematics

  • AxiomPy: A python library for advance mathematics operations.
  • diofant: A Python computer algebra system (CAS), originally a fork of SymPy
  • gmpy2: General multiple-precision arithmetic for Python (GMP, MPFR, MPC)
  • libMath: A Python library created to assist programmers with complex mathematical functions
  • Mathics: A free, general-purpose computer algebra system featuring Wolfram Language compatibility
  • mpmath: A Python library for arbitrary-precision floating-point arithmetic
  • pymbolic: A simple package to do symbolic math (focus on code generation and DSLs)
  • Sage: SageMath, a free open-source mathematics software system (computer algebra system)
  • SciPy: SciPy (pronounced "Sigh Pie") is an open-source software for mathematics, science, and engineering. It includes modules for statistics, optimization, integration, linear algebra, Fourier transforms, signal and image processing, ODE solvers, and more
  • SimPy: A computer algebra system written in pure Python
  • SimPa: Symbolic math for Pandas

Geometry

  • boule: Reference ellipsoids for geodesy and geophysics
  • COMPAS: Core library of the COMPAS framework for research in architecture, engineering and digital fabrication
  • gpytoolbox: A collection of utility functions to prototype geometry processing research in Python
  • meshio: Input/output for many mesh formats
  • NURBS-Python: Object-oriented pure Python B-Spline and NURBS library
  • polytope: Geometric operations on polytopes of any dimension
  • pygmsh: A high-level abstraction for the mesh generator Gmsh in Python
  • pymanopt: Python toolbox for optimization on Riemannian manifolds with support for automatic differentiation
  • pytransform3d: 3D transformations for Python
  • roma: A lightweight library to deal with 3D rotations in PyTorch
  • shapely: Manipulation and analysis of geometric objects in the Cartesian plane
  • trimesh: Python library for loading and using triangular meshes

Graph Theory

  • graph-theory: A simple graph library
  • graphblas-algorithms: Graph algorithms written in GraphBLAS
  • networkit: A toolkit for large-scale network analysis
  • networkx: Creation, manipulation, and study of the structure, dynamics and functions of complex networks
  • PrRGG: Python Random Graph Generator
  • python-igraph: Python interface for the igraph high-performance graph library
  • rustworkx: A high-performance Python graph library implemented in Rust

Group Theory

  • abelian: Computations on locally compact Abelian groups
  • abeliantensors: A library for Abelian symmetry preserving tensors in Python 3
  • bella: New computational package for small-rank matrix groups
  • jaxlie: Rigid transforms and Lie groups (SO(2), SE(2), SO(3), SE(3)) for JAX
  • Liegroups: Python implementation of SO2, SE2, SO3, and SE3 matrix Lie groups using numpy or pytorch
  • liepy: Computes representation matrices for Lie groups
  • Permuta: A native Python library for permutation pattern research
  • Permutation: Permutations of finitely many positive integers
  • spgrep: On-the-fly generator of space-group irreducible representations
  • symmetria: Symmetria provides an intuitive, thorough, and comprehensive framework for interacting with the symmetric group and its elements.

Learning Math

  • FUNMATH: Implementations of mathematical functions, formulas and concepts
  • MathGenerator: A math problem generator, created for the purpose of giving teachers and students the means to easily get access to random math exercises to suit their needs
  • PyWonderland: A tour in the wonderland of math with python

Linear Algebra

  • block: An intelligent block matrix library for numpy, PyTorch, and beyond
  • hermite-function: A Hermite function series module
  • lineax: Linear solvers in JAX and Equinox
  • multipoly: A multivariate polynomial module
  • NumPy: The fundamental package for scientific computing with Python
  • Spatial Maths for Python: Create, manipulate and convert representations of position and orientation in 2D or 3D using Python
  • PentaPy: A Python toolbox for pentadiagonal linear systems
  • pygraphblas: A Python wrapper around the GraphBLAS API for sparse linear algebra on graphs
  • PyLops: A Linear-Operator Library for Python
  • PyParadiso: Python interface to the Intel MKL Pardiso library to solve large sparse linear systems of equations.
  • Poisson-solver-2D: Finite difference solution of 2D Poisson equation. Can handle Dirichlet, Neumann and mixed boundary conditions
  • scikit-spatial: Spatial objects and computations based on NumPy arrays
  • vg: Vector-geometry and linear-algebra toolbelt for 3D points and vectors
  • xitorch: Differentiable scientific computing library (linear algebra, optimization, integration) for PyTorch

Number Theory

  • AlgNuTh: Algebraic Number Theory package
  • continuedfractions: Object-oriented continued fractions with Python
  • Number-Theory-Python: Python code implementing various number theory, elliptic curve and finite field computations
  • primePy: This module cal quickly find prime factors with multiplicity of a given number. This module also has several other prime factor functions
  • primesieve-Python: Fast prime number generator. Python bindings for the primesieve C++ library
  • pyadic: p-Adic numbers and finite fields in Python
  • python-flint: Python bindings for FLINT (Fast Library for Number Theory) and Arb
  • sequentium: Sequentium is a user-friendly package that implements various well-known sequences, providing a seamless and intuitive experience for the user
  • oeis: Newcomer friendly project implementing a few oeis.org sequences

Optimization

  • cvxpy: A Python-embedded modeling language for convex optimization problems
  • optax: A gradient processing and optimization library for JAX
  • pymoo: Multi-objective optimization in Python (NSGA-II, NSGA-III, MOEA/D, and more)
  • Pyomo: An object-oriented algebraic modeling language in Python for structured optimization problems
  • PySwarms: A research toolkit for particle swarm optimization (PSO) in Python

Probability and Statistics

  • Bambi: BAyesian Model-Building Interface (Bambi) in Python
  • BlackJAX: A Bayesian inference library designed for ease of use, speed and modularity
  • dynesty: Dynamic nested sampling package for computing Bayesian posteriors and evidences
  • GPJax: Gaussian processes in JAX and Equinox
  • icepool: Python dice probability package
  • NumPyro: Probabilistic programming with NumPy powered by JAX for autograd and JIT compilation
  • obscure_stats: A small collection of lesser-known statistical measures
  • particles: Sequential Monte Carlo in Python
  • Pingouin: Statistical package in Python based on Pandas
  • PyAutoFit: PyAutoFit: Classy Probabilistic Programming
  • PyMC: Bayesian modeling and probabilistic programming in Python
  • Pyro: Deep universal probabilistic programming with Python and PyTorch
  • sbi: A Python package for simulation-based inference
  • Statsmodels: statistical modeling and econometrics in Python
  • thejoker: A custom Monte Carlo sampler for the (gravitational) two-body problem
  • WagerBrain: A package containing the essential math required for sports betting and gambling

Topology

  • GUDHI: A generic library with a Python interface for topological data analysis and higher-dimensional geometry
  • kepler-mapper: A flexible Python implementation of the Mapper algorithm for topological data analysis
  • ripser.py: A lean persistent homology library for Python
  • scikit-tda: Topological data analysis for Python

Others

  • Axelrod: A research tool for the Iterated Prisoner's Dilemma and other game-theoretic tournaments
  • combi: Pythonic package for combinatorics
  • Gzint: A python3 library for efficiently storing massive integers (stands for gzipped-integer)
  • MathTranslate: Translate scientific papers with math
  • Nashpy: A Python library for the computation of equilibria of 2-player strategic games
  • Pint: Operate and manipulate physical quantities (units of measurement) in Python
  • PySymmPol: Manipulation of various symmetric polynomials, and Young diagrams
  • thewalrus: A library for the calculation of hafnians, Hermite polynomials and Gaussian boson sampling
  • uncertainties: Transparent calculation of uncertainties (error propagation) on the quantities involved

About

List of 🐍 packages that deal with mathematics

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors