umap-learn
Uniform Manifold Approximation and Projection
What it is and what it does
UMAP is a dimension reduction algorithm that embeds high-dimensional data into lower-dimensional space while preserving manifold structure. It models data as lying on a Riemannian manifold and uses fuzzy topological structure to find embeddings that balance local neighborhood relationships with global structure. The package follows a familiar transformer API, integrating naturally into existing ML pipelines.
The algorithm depends on numpy, scipy, scikit-learn, numba (for performance), pynndescent (for nearest-neighbor search), and tqdm (for progress reporting). It supports sparse matrices, custom distance metrics, and includes densMAP for density-preserving embeddings. You can use it for exploratory visualization, as a preprocessing step before clustering, or as a general-purpose non-linear dimensionality reduction technique.
Use it for:
- Visualize high-dimensional datasets (e.g., image pixels, gene expression) in 2D or 3D for exploratory data analysis
- Preprocess data before clustering to improve cluster quality
- Reduce dimensionality as a feature engineering step before training downstream models
- Preserve local density information in embeddings using densMAP for single-cell transcriptomics or similar applications
- Handle sparse, very high-dimensional data where alternatives become computationally prohibitive
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
UMAP reduces high-dimensional data to lower dimensions for visualization and general non-linear dimensionality reduction, using a manifold-learning approach that preserves both local and global structure.
Yes. UMAP is actively maintained, has no known vulnerabilities, low install friction, and a permissive BSD license. It is widely used in scientific and ML workflows. Install it if you need dimension reduction with better global structure preservation, or as a general-purpose manifold learning tool for exploratory analysis and preprocessing.
Install
umap-learn on PyPI
pip
pip install umap-learnuv
uv add umap-learnpoetry
poetry add umap-learnInstalling umap-learn
Before you install
Low install friction with a pure-Python wheel distribution. Requires numba for JIT compilation and dependencies including numpy and scipy, all of which are well-maintained. Active maintenance with a recent release 128 days ago.
License in practice
BSD permissive license allows use in commercial and proprietary projects with minimal restrictions; you may use, modify, and distribute with proper attribution.
Quickstart
pip install umap-learn
import umap
embedding = umap.UMAP().fit_transform(data)
Requires Python 3.9 or later; numba JIT compilation may take time on first run but subsequent calls are fast.
Verify before relying
- Whether the package supports GPU acceleration or if computation is CPU-only via numba
- Performance characteristics on datasets with over a million dimensions (mentioned in description but not quantified)
- Whether densMAP mode requires additional configuration or dependencies beyond the base install
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — numpy, scipy, scikit-learn, numba, pynndescent, tqdm |
| Maintenance | actively maintained — 128 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 7,491,195/month — #1,736 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: umap_learn-0.5.12-py3-none-any.whl
Keywords: dimension reduction, umap, t-sne, manifold
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
princePrince implements multivariate exploratory data…
permissive · top 15,000 on PyPI
antropyAntroPy computes entropy and fractal dimension…
permissive · top 15,000 on PyPI
scvi-toolsscvi-tools provides probabilistic models for…
permissive · top 15,000 on PyPI
libcuvs-cu12GPU-accelerated vector search and clustering…
permissive · top 15,000 on PyPI
cuvs-cu12Provides GPU-accelerated approximate nearest…
permissive · top 15,000 on PyPI
datasieveDataSieve extends scikit-learn's Pipeline to…
permissive · top 15,000 on PyPI
gtsamGTSAM is a Python wrapper around a C++ library…
permissive · top 15,000 on PyPI
ripserRipser computes persistent homology and…
permissive · top 15,000 on PyPI
alphashapeGenerates n-dimensional alpha shapes—concave or…
permissive · top 5,000 on PyPI
axial-positional-embeddingProvides axial positional embeddings for…
permissive · top 15,000 on PyPI