Python is a powerful and flexible programming language that is fun and easy to learn. It is the programming language of choice for many professionals, hobbyists, and scientists. The power of Python comes from its large ecosystem of packages and friendly community, and from its ability to communicate seamlessly with compiled extension modules. This means that Python is ideal for solving problems of all kinds, and mathematical problems in particular.
Mathematics is usually associated with calculations and equations, but in reality, these are very small parts of a much larger subject. At its core, mathematics is about solving problems, and the logical, structured approach to solutions. Once you explore past the equations, calculations, derivatives, and integrals, you discover a vast world of beautiful, elegant structures.
This book is an introduction to solving mathematical problems using Python. It provides an introduction to some of the basic concepts from mathematics – and how to use Python to work with these concepts – and templates for solving a variety of mathematical problems across a large number of topics within mathematics. The first few chapters focus on core skills such as working with NumPy arrays, plotting, calculus, and probability. These topics are very important throughout mathematics, and act as the foundation for the rest of the book. In the remaining chapters, we discuss more practical problems, covering topics such as data analysis and statistics, networks, regression and forecasting, optimization, and game theory. We hope that this book provides a basis for solving mathematical problems and the tools for you to further explore the world of mathematics.