It is really easy to get confused with absolutely stunning dual-purpose books like this: 1. To teach you numerical methods and 2. To also teach you Python.
This wonderful text fills a very much needed niche for Engineering, Math and IT/Computer Science students at the AP High School/ beginning undergrad level, as well as for self study, reference, autodidacts. There are two sets of important (and different) keywords for this huge text: In math: CAS (Computer Algebra Systems), Special Functions, Numerical Analysis, Numerical Methods and Numerical Recipes. In Python: Numeric methods interfaces and Python programming.
There are several types of high level languages following structured/imperative, functional and object oriented programming paradigms respectively: C- Fortran type; Lisp- Haskell- Scheme type; and Java, C++, Python etc. on the object side. MOST IMPORTANTLY: there also are "special function" applications languages like R, MatLab, VHDL and other "calculator" software with interfaces especially designed for math functions. When you learn numerical methods, you don't necessarily "use" a lot of the object functions of your language (inheritance for example). Especially with Python 3 (not covered in this book), but in much more advanced texts like Numerical Methods in Engineering with Python 3, which actually is becoming a competitor for MatLab, much fewer object oriented features are actually used, and the GUI looks a LOT like MatLab, Mathcad, Mathematica, etc. when you're done!
I tell you this because, if you're thinking of using this text as a general intro to Python AND scientific- engineering programming, even though it is written at a wonderfully introductory level (without losing high level apps and functions), it is really quite specialized in numerical methods, so you would lose a bit of the oop side you might need for a more general Python education.
Numerical methods and special functions are some of the highest, most complex and difficult applications in computer science, math, science and engineering (and some of the most carefully guarded trade secrets at HP/ TI and other calculator companies!). Numerical methods and mathematics are the way researchers and programmers create and implement special programming to represent and solve math functions, equations and problems (including statistics and big data) using the computing power of the processor, either with brute force or matrix manipulation or both. This means that the "brain" methods, of say, substitution and u clauses in integrals or solving polynomials, are usually changed to their linear algebra equivalents (because 0s, 1s and diagonals in matrices, arrays and vectors are easier for a computer to solve).
Now here is the astonishing thing about this text: NO OTHER TEXT of the dozen or so best out there tries to introduce numerical recipes, methods, functions, coding etc. without at least a full year of linear algebra, and ideally a full year of calculus. THIS ONE DOES! The hardest part of learning this kind of material is often the notation, and with special functions you have at least five levels of notation: the math, the algorithms, the data structures, the language code and sometimes even compile/assembly issues because some of these functions are processor specific or require special memory allocations! This author hand holds us through EVERY step of the notation, explaining it in detail. This makes this text outstanding for pre-linear algebra (with a leg up on Python) as much as its stated value of teaching Python!
You can write three or four lines in Haskell (true of most algorithms) that control many more lines of code, that then take three pages of math symbols and formulae-- to solve a very tough Sudoku puzzle in a tenth of a second. This disparity in notation causes a lot of beginning students to give up. This fine text walks you through that jungle! Highly recommended before you try climbing the higher mountains of numerical functions and recipes, or more advanced Python. A side benefit is that MatLab will be a snap after you get this done! Even today, a LOT of special functions (to be honest) are still legacy libraries in C.
Some of the best can be found in Press's Numerical Recipes in C: The Art of Scientific Computing, Second Edition. From this text, I'm guessing you'd move on to R, Python 3, Java (for the many JVM distributions), Erlang (for concurrent) or even check out VHDL and C for embedded applications, depending on your career/ edu/ consulting/ self study track. "Pure science" engineering types still prefer MatLab, but "jocks" (at the top of their game) code their own in Python 3, Lisp, Haskell, Prolog or even VHDL. The libraries in the advanced languages (templates, API's, plug ins, macros, etc.) make many of these tasks a lot easier, and in fact allow you to pretty much create your own DSL (Domain Specific Language) specially tailored to your own scientific/ engineering/ math/ IT application. Highly recommended as a starting point, even for Seniors in High School with visions of a tech career/ company.