Practical Numerical Computing Using Python