Beginning with general programming concepts such as loops and functions within the core Python 3 language, and moving onto the NumPy, SciPy and Matplotlib libraries for numerical programming and data visualisation, this textbook also discusses the use of IPython notebooks to build rich-media, shareable documents for scientific analysis. Students and researchers at all levels are increasingly turning to the powerful Python programming language as an alternative to commercial packages and this fast-paced introduction moves from the basics to advanced concepts in one complete volume, enabling readers to quickly gain proficiency. Learn to master basic programming tasks from scratch with real-life scientifically relevant examples and solutions drawn from both science and engineering.