The Linear Algebra presented in the book is easy, but if you aren't familiar with Linear algebra then it would be a benefit to learn some basics before reading.
Familiarity with mathematical notation and mathematical reasoning is also a must. If you don't have a basic understanding of being able to follow mathematical arguments, then some side comments (that aren't explicitly stated) may seem mysterious to you.
This book is very suitable for someone with a background in Python and basic Linear Algebra/mathematical reasoning knowledge.
The point of this book is to understand the math/algorithms and not treat the algorithms as blackbox solutions. You'll learn about processing your data, dimension reductions, etc., etc.
You may have to do some outside studying depending on your background, but the author provides those resources for you in the text. Overall this is a very good book and the author did a good job at writing it.
Oh - and an understanding of when and how to "parallelize" problems can be important, too.
ML and associated problems aren't the most intuitive to understand, solve, etc - but they are a great challenge to expose yourself to if you have the interest.
/disclosure: I'm currently enrolled in and participating in Udacity's Self-Driving Car Engineer nanodegree, plus I have participated in and completed their CS373 program, and I was a part of (and completed) the original Stanford ML Class MOOC that was taught by Andrew Ng. I guess you can say I am a bit biased on this subject...?