At the time of writing, I'm not aware of any books that are very specifically about topological data analysis (TDA), apart from the collected papers in Topological Methods in Data Analysis and Visualization and its two sequels, but there are a handful on computational topology that contain valuable background and details for TDA. Gurjeet has already mentioned Afra Zomorodian's Topology for Computing. Others include:

  • Computational Topology by Edelsbrunner & Harer
  • A Short Course in Computational Geometry and Topology by Edelsbrunner
  • Computational Homology by Kaczynski et al

At the moment, knowledge of statistics does not appear to be a prerequisite, although there is some interesting work in that direction at CMU: http://www.stat.cmu.edu/topstat/. It is helpful to be comfortable with multivariable calculus, linear algebra, introductory abstract algebra (especially group theory) and basic point-set topology. Prior acquaintance with algebraic topology and manifolds would be even better. For comparison purposes, it may be interesting to look into clustering algorithms such as $k$-means and hierarchical clustering.

You may want to take a look at Peter Saveliev's Topology Illustrated (which is indeed liberally and helpfully illustrated, so the title is accurate) with its emphasis on homology, and Robert Ghrist's Elementary Applied Topology for a broad-ranging invitation to applied topology. Michael Robinson's Topological Signal Processing could also be of interest.

Update: The importance of the whole: topological data analysis for the network neuroscientist by Sizemore, Phillips-Cremins, Ghrist & Bassett is a nice introductory paper for a first look at TDA.


Afra's paper is a really good introduction. He has also written a really accessible book which is accessible here:

http://www.amazon.com/Computing-Cambridge-Monographs-Computational-Mathematics/dp/0521136091/ref=sr_1_1?ie=UTF8&qid=1401393274&sr=8-1&keywords=afra+zomorodian

I would recommend playing with some software. Here's some:

http://comptop.stanford.edu/programs/


I'm also not aware of any whole books on the topic. Only highly technical research articles which are fairly impenetrable as a starting point. In my opinion one of the best ways to learn would be to start trying playing with TDA methods in code and reviewing example uses of TDA in practice.

A few good python libraries exist for TDA:

http://gudhi.gforge.inria.fr/

https://github.com/giotto-ai/giotto-learn

https://github.com/scikit-tda/scikit-tda

You can start reading the tutorials for these tools along with articles about their use:

An overview: https://towardsdatascience.com/topological-data-analysis-unpacking-the-buzzword-2fab3bb63120

An intro to gudhi: https://towardsdatascience.com/a-concrete-application-of-topological-data-analysis-86b89aa27586

Application to DL application: https://towardsdatascience.com/from-tda-to-dl-d06f234f51d

An application to de-noising feature preparation (disclaimer, I was an author) using giotto-learn: https://towardsdatascience.com/the-shape-that-survives-the-noise-f0a2a89018c6

and many others on towardsdatascience if you just search with code you can download and play with.

Many of these and similar articles have links to binder hosted jupyter nbs which you can try.