Welcome to mogutda’s documentation!¶
mogutda contains Python codes that demonstrate the numerical calculation of algebraic topology in an application to topological data analysis (TDA). Its core code is the numerical methods concerning implicial complex, and the estimation of homology and Betti numbers.
Topological data analysis aims at studying the shapes of the data, and draw some insights from them. A lot of machine learning algorithms deal with distances, which are extremely useful, but they miss the information the data may carry from their geometry.
mogutda runs in Python 3.8, 3.9, 3.10, and 3.11.
Contributors:
- Kwan-Yuet Ho (stephenhky)
- Isla Staden (Islast)
- Filip Cornell (Filco306)
Contents:
History¶
The codes in this package were developed as a demonstration of a few posts of my blog. It was not designed to be a Python package but a pedagogical collection of codes. (See: PyTDA .) However, the codes and the blog posts have been unexpectedly popular. Therefore, I modularized the code into the package mogu . (or corresponding repository: MoguNumerics) However, mogu is simply a collection of unrelated numerical routines with a lot of dependencies, but the part of TDA can be quite independent.
In order to provide other researchers and developers an independent package, which is compact (without unecessary alternative packages to load), and efficient, I decided to modularize the codes of TDA separately, and name this package mogutda.
Tutorial¶
To establish a simplicial complex for a torus, type
>>> import numpy as np
>>> from mogutda import SimplicialComplex
>>> torus_sc = [(1,2,4), (4,2,5), (2,3,5), (3,5,6), (5,6,1), (1,6,2), (6,7,2), (7,3,2),
(1,3,4), (3,4,6), (4,6,7), (4,5,7), (5,7,1), (7,3,1)]
>>> torus_c = SimplicialComplex(simplices=torus_sc)
To retrieve its Betti numbers, type:
>>> print(torus_c.betti_number(0)) # print 1
>>> print(torus_c.betti_number(1)) # print 2
>>> print(torus_c.betti_number(2)) # print 1
To visually present the topology, type:
>>> torus_c.draw()
Blogs¶
Codes in this repository are demo codes for a few entries of my blog, `Everything about Data Analytics https://datawarrior.wordpress.com/`_, and the corresponding entries are:
Starting the Journey of Topological Data Analysis (TDA) (August 3, 2015)
Constructing Connectivities (September 14, 2015)
Homology and Betti Numbers (November 3, 2015)
Topology in Physics and Computing (November 10, 2015)
Persistence (December 20, 2015)
Topological Phases (October 6, 2016)
moguTDA: Python package for Simplicial Complex (July 2, 2018)
References¶
Afra J. Zomorodian. Topology for Computing (New York, NY: Cambridge University Press, 2009).
Afra J. Zomorodian. “Topological Data Analysis,” Proceedings of Symposia in Applied Mathematics (2011).
Afra Zomorodian, Gunnar Carlsson, “Computing Persistent Homology,” Discrete Comput. Geom. 33, 249-274 (2005).
Gunnar Carlsson, “Topology and Data”, Bull. Amer. Math. Soc. 46, 255-308 (2009).
Jeffrey Ray, Marcello Trovati, “A Survey of Topological Data Analysis (TDA) Methods Implemented in Python,” in Advances in Intelligent Networking and Collaborative Systems, Springer (2018).
- Lum, G. Singh, A. Lehman, T. Ishkanov, M. Vejdemo-Johansson, M. Alagappan, J. Carlsson, G. Carlsson, “Extracting insights from the shape of complex data using topology”, Sci. Rep. 3, 1236 (2013).
Robert Ghrist, “Barcodes: The persistent topology of data,” Bull. Amer. Math. Soc. 45, 1-15 (2008).
News¶
- 08/18/2023: mogutda 0.4.0 released.
- 06/20/2023: mogutda 0.3.5 released.
- 09/09/2022: mogutda 0.3.4 released.
- 07/15/2021: mogutda 0.3.3 released.
- 04/10/2021: mogutda 0.3.2 released.
- 11/28/2020: mogutda 0.3.1 released.
- 08/16/2020: mogutda 0.3.0 released.
- 04/28/2020: mogutda 0.2.1 released.
- 01/16/2020: mogutda 0.2.0 released.
- 02/20/2019: mogutda 0.1.5 released.
- 12/31/2018: mogutda 0.1.4 released.
- 07/18/2018: mogutda 0.1.3 released.
- 07/02/2018: mogutda 0.1.2 released.
- 06/13/2018: mogutda 0.1.1 released.
- 06/11/2018: mogutda 0.1.0 released.