Logo

Source Code PyPI version downloads test publish docs codecov DOI Streamlit App

tda-mapper

tda-mapper is a Python library based on the Mapper algorithm, a key tool in Topological Data Analysis (TDA). Designed for efficient computations and backed by advanced spatial search techniques, it scales seamlessly to high dimensional data, making it suitable for applications in machine learning, data mining, and exploratory data analysis.

Further details in the documentation and in the paper.

Main features

  • Fast Mapper graph construction: Accelerates computations with efficient spatial search, enabling analysis of large, high-dimensional datasets.

  • Scikit-learn compatibility: Easily integrate Mapper as a part of your machine learning workflows.

  • Flexible visualization options: Visualize Mapper graphs with multiple supported backends, tailored to your needs.

  • Interactive exploration: Explore data interactively through a user-friendly app.

Background

The Mapper algorithm transforms complex datasets into graph representations that highlight clusters, transitions, and topological features. These insights reveal hidden patterns in data, applicable across fields like social sciences, biology, and machine learning. For an in-depth coverage of Mapper, including its mathematical foundations and applications, read the original paper.

Step 1

Step 2

Step 3

Step 4

Step 1

Step 2

Step 3

Step 4

Choose lens

Cover image

Run clustering

Build graph

Citations

If you use tda-mapper in your work, please consider citing both the library, archived in a permanent Zenodo record, and the paper, which provides a broader methodological overview. We recommend citing the specific version of the library used in your research, as well as the paper.

  • tda-mapper: For example to cite version 0.8.0 you can use:

    @software{simi_2024_14194667,
       author       = {Simi, Luca},
       title        = {tda-mapper},
       month        = nov,
       year         = 2024,
       publisher    = {Zenodo},
       version      = {v0.8.0},
       doi          = {10.5281/zenodo.14194667},
       url          = {https://doi.org/10.5281/zenodo.14194667}
    }
    
  • Methodology: For the paper, you can use:

    @article{simi2025a,
       title    = {A Scalable Approach for Mapper via Efficient Spatial Search},
       author   = {Luca Simi},
       journal  = {Transactions on Machine Learning Research},
       issn     = {2835-8856},
       year     = {2025},
       url      = {https://openreview.net/forum?id=lTX4bYREAZ},
       note     = {}
    }
    

User's Guide

API Reference