Data Science from Scratch
Joel Grus
K-Means and Hierarchical Clustering with Python
Data Science From Scratch: First Principles With Python