Python for Probability, Statistics, and Machine Learning by José Unpingco, 2020
There are 445 run-able code blocks with corresponding outputs that have been tested for accuracy. Over 158 graphical visualizations (almost all generated using Python) illustrate the concepts that are developed both in code and in mathematics.