eigenpy
Bindings between Numpy and Eigen using Boost.Python
What it is and what it does
EigenPy is a C++ binding layer that bridges arrays and the Eigen linear algebra library via Boost.Python. It enables Python code to work directly with Eigen's high-performance matrix and tensor operations without copying data between Python and C++. The package exposes Eigen's standard decomposition routines (Cholesky, SVD, QR), geometry module, tensor support, and STL/Boost types (optional, std::pair, maps, variants), all while maintaining memory alignment for vectorization.
The package is designed for scientific and numerical computing workflows where performance matters. Researchers and engineers working with large matrices, tensor computations, or algorithms that benefit from Eigen's optimizations can use it to prototype and deploy code that seamlessly integrates Python's ease of use with C++'s computational speed. Installation is straightforward on Linux, macOS, and Windows via conda, apt, or Homebrew, with pre-built wheels for modern Python versions.
Use it for:
- Prototyping numerical algorithms in Python that leverage Eigen's optimized matrix decompositions without rewriting in C++.
- Building robotics or computer vision pipelines that need fast linear algebra operations with zero-copy overhead.
- Wrapping existing Eigen-based C++ libraries to expose them safely and efficiently to Python code.
- Performing tensor computations via Eigen::Tensor while maintaining full interoperability with Python arrays.
- Developing scientific simulations that require both Python's flexibility and C++'s performance for linear algebra kernels.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
EigenPy provides Python bindings between NumPy arrays and the Eigen C++ linear algebra library, enabling zero-copy memory sharing and access to Eigen's matrix decomposition and tensor operations from Python.
Yes, if you need high-performance linear algebra in Python with tight array integration and are on a supported platform (Python >=3.10, Linux/macOS/Windows). The zero-copy memory sharing and access to Eigen's decompositions make it valuable for numerical computing. Medium install friction (compiled dependencies) is offset by pre-built wheels and active maintenance. No known security issues and permissive licensing. Not necessary if you only use built-in operations or existing alternatives.
Install
eigenpy on PyPI
pip
pip install eigenpyuv
uv add eigenpypoetry
poetry add eigenpyInstalling eigenpy
Before you install
Medium install friction due to compiled C++ dependencies (cmeel, cmeel-boost). Pre-built wheels cover modern Python versions (3.10–3.14) and common platforms (Linux x86_64/aarch64, macOS x86_64/arm64), making installation straightforward on supported systems. Active maintenance with recent releases.
License in practice
BSD-2-Clause is permissive and imposes minimal restrictions; you may use, modify, and distribute EigenPy in commercial or proprietary projects provided you include the license notice and disclaimer.
Quickstart
pip install eigenpy
import eigenpy
# EigenPy enables zero-copy operations on arrays with Eigen's matrix decompositions
Requires Python >=3.10. Pre-built wheels available for Linux (glibc 2.28+), macOS 10.9+, and arm64 platforms; other systems may require building from source.
Verify before relying
- Whether Eigen::Ref and Eigen::Tensor support are fully documented with usage examples.
- Performance characteristics and memory overhead of the zero-copy binding compared to alternatives.
- Compatibility with specific versions of cmeel and cmeel-boost beyond the stated Python requirement.
Package facts
| License | BSD-2-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — cmeel, cmeel-boost |
| Maintenance | actively maintained — 85 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,260,266/month — #4,151 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: eigenpy-3.13.0-0-cp310-cp310-macosx_10_9_x86_64.whl; eigenpy-3.13.0-0-cp310-cp310-macosx_11_0_arm64.whl; eigenpy-3.13.0-0-cp310-cp310-manylinux_2_28_aarch64.whl; eigenpy-3.13.0-0-cp310-cp310-manylinux_2_28_x86_64.whl; eigenpy-3.13.0-0-cp311-cp311-macosx_10_9_x86_64.whl; eigenpy-3.13.0-0-cp311-cp311-macosx_11_0_arm64.whl; eigenpy-3.13.0-0-cp311-cp311-manylinux_2_28_aarch64.whl; eigenpy-3.13.0-0-cp311-cp311-manylinux_2_28_x86_64.whl; eigenpy-3.13.0-0-cp312-cp312-macosx_10_9_x86_64.whl; eigenpy-3.13.0-0-cp312-cp312-macosx_11_0_arm64.whl; eigenpy-3.13.0-0-cp312-cp312-manylinux_2_28_aarch64.whl; eigenpy-3.13.0-0-cp312-cp312-manylinux_2_28_x86_64.whl; eigenpy-3.13.0-0-cp313-cp313-macosx_10_9_x86_64.whl; eigenpy-3.13.0-0-cp313-cp313-macosx_11_0_arm64.whl; eigenpy-3.13.0-0-cp313-cp313-manylinux_2_28_aarch64.whl; eigenpy-3.13.0-0-cp313-cp313-manylinux_2_28_x86_64.whl; eigenpy-3.13.0-0-cp314-cp314-macosx_10_9_x86_64.whl; eigenpy-3.13.0-0-cp314-cp314-macosx_11_0_arm64.whl; eigenpy-3.13.0-0-cp314-cp314-manylinux_2_28_aarch64.whl; eigenpy-3.13.0-0-cp314-cp314-manylinux_2_28_x86_64.whl
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
tensorlyTensorLy performs tensor decomposition, tensor…
permissive · top 15,000 on PyPI
nvidia-cublasProvides NVIDIA CUBLAS native runtime libraries…
unclear · top 1,000 on PyPI
linear-operatorLinearOperator abstracts structured matrix…
permissive · top 5,000 on PyPI
nvidia-cusolverProvides CUDA solver native runtime libraries…
unclear · top 1,000 on PyPI
onemkl-sycl-blasProvides optimized C and Data Parallel C++…
unclear · top 15,000 on PyPI
nvidia-cublas-cu12Provides NVIDIA CUBLAS native runtime libraries…
unclear · top 1,000 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pybind11-globalA header-only C++ library that generates Python…
permissive · top 15,000 on PyPI