Numerical Python: Scientific Computing and Data Science Applications with Numpy, Scipy and Matplotlib