Topology data analysis routines
Project description
Table of Contents
About TopologyX
Topological Data Analysis, also abbreviated TDA, is a recent field that emerged from various works in applied topology and computational geometry. It aims at providing well-founded mathematical, statistical, and algorithmic methods to exploit the topological and underlying geometric structures in data. My aim is to develop some tools in this repository that may be applied to data science in general. Some of them have already proven useful for classification tasks.
Read more about applied TDA:
- General introduction to TDA
- Medium article with general TDA overview
- Medium article about TDA for clustering
- Paper on applied TDA for arrhythmia detection
Built With
Get Started
pip install topologyx
# or with uv
uv add topologyx
How To Use
from topologyx.filtrations import Filtration
filtration = Filtration(data, use_alpha=False)
filtration.build_persistence_diagram(filtration_type=FiltrationType.SIMPLE, dimension=0)
from topologyx.clustering import TomatoClustering
tomato = TomatoClustering(data)
_ = tomato.estimate_clusters(visualize=True)
_ = tomato.fit_predict(n_clusters=3, visualize=True)
Local Installation
git clone https://github.com/merylldindin/topologyx
# install dependencies
make setup
Using Examples
Examples are provided as Marimo notebooks - reactive Python notebooks that are git-friendly (pure .py files). Launch the example server with:
make marimo
Filtration of a 3D shape: examples/filtrations.py demonstrates how to handle three-dimensional shapes using height as a filtration function, showing persistence diagrams, Betti curves, and persistence landscapes.
ToMaTo clustering: examples/clustering.py showcases TDA's strength for clustering - detecting centroids and recording relationships between points across various data distributions.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file topologyx-1.2.0.tar.gz.
File metadata
- Download URL: topologyx-1.2.0.tar.gz
- Upload date:
- Size: 2.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a13345618c3bd882597365bec7855b77465cf9fcc31ca99c4b3721d0b905fa8
|
|
| MD5 |
bacdc0de81328423060c6f575fd27b03
|
|
| BLAKE2b-256 |
d720e94fc1a6b5cf26967cc5a3dc8d81994bed1afdb2ce130be57ec348164787
|
File details
Details for the file topologyx-1.2.0-py3-none-any.whl.
File metadata
- Download URL: topologyx-1.2.0-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8292771c26195d760f7e364a9c4ca24a94d6dfee9329a538d4b6919d6d2a236
|
|
| MD5 |
eddcccac75339e44bb5159b368471f7e
|
|
| BLAKE2b-256 |
e64c85d690b4eb7c2f506c412650660c6e29e97d386c7ff73df3d914142858dd
|