Quicklinks: Back to my homepage

Mathematical Methods in Data Science (with Python)

Sebastien Roch, Department of Mathematics, UW-Madison


This textbook on the mathematics of data has two intended audiences:

Content-wise it is a second course in linear algebra, multivariable calculus, and probability theory motivated by and illustrated on data science applications. As such, the reader is expected to be familiar with the basics of those areas, as well as to have been exposed to proofs -- but no knowledge of data science is assumed. Moreover, while the emphasis is on mathematical concepts, programming is used throughout. Basic familiarity with Python will suffice. The book provides an introduction to some specialized packages, especially Numpy, NetworkX, and PyTorch.


It is based on Jupyter notebooks that were developed for MATH 535: MATHEMATICAL METHODS IN DATA SCIENCE, a one-semester advanced undergraduate and Master's level course offered at UW-Madison. Websites from previous semesters are below. Warning: They are no longer maintained and may have broken links.

Online book and Jupyter notebooks

Textbook: Current version of the full MMiDS book

Links to specific chapters are below, together some additional materials (assignments, Jupyter notebooks, datasets, auto-quizzes, etc.). Most of these resources are also available on the GitHub page of the book.

Exercises: Assignments and practice exams for Spring 2024 follow.

Python package: To run some of the code below, you will need mmids.py.

Chap 1: Introduction

Chap 2: Least squares: geometric, algebraic, and numerical aspects

Chap 3: Singular value decomposition

Chap 4: Spectral graph theory

Chap 5: Random walks on graphs and Markov chains

Chap 6: Optimization theory and algorithms

Chap 7: Probabilistic models: from simple to complex

Programming languages

Additional Reading

The material on this website was partly influenced by the following excellent textbooks.

Last updated: apr 22, 2024