Advanced Python Programming

Lanaro, Dr Gabriele, Nguyen, Quan, Kasampalis, Sakis



Key Features

  • Set up and run distributed algorithms on a cluster using Dask and PySpark
  • Master skills to accurately implement concurrency in your code
  • Gain practical experience of Python design patterns with real-world examples

Book Description

This Learning Path shows you how to leverage the power of both native and third-party Python libraries for building robust and responsive applications. You will learn about profilers and reactive programming, concurrency and parallelism, as well as tools for making your apps quick and efficient. You will discover how to write code for parallel architectures using TensorFlow and Theano, and use a cluster of computers for large-scale computations using technologies such as Dask and PySpark. With the knowledge of how Python design patterns work, you will be able to clone objects, secure interfaces, dynamically choose algorithms, and accomplish much more in high performance computing.

By the end of this Learning Path, you will have the skills and confidence to build engaging models that quickly offer efficient solutions to your problems.

This Learning Path includes content from the following Packt products:

  • Python High Performance - Second Edition by Gabriele Lanaro
  • Mastering Concurrency in Python by Quan Nguyen
  • Mastering Python Design Patterns by Sakis Kasampalis

What you will learn

  • Use NumPy and pandas to import and manipulate datasets
  • Achieve native performance with Cython and Numba
  • Write asynchronous code using asyncio and RxPy
  • Design highly scalable programs with application scaffolding
  • Explore abstract methods to maintain data consistency
  • Clone objects using the prototype pattern
  • Use the adapter pattern to make incompatible interfaces compatible
  • Employ the strategy pattern to dynamically choose an algorithm

Who this book is for

This Learning Path is specially designed for Python developers who want to build high-performance applications and learn about single core and multi-core programming, distributed concurrency, and Python design patterns. Some experience with Python programming language will help you get the most out of this Learning Path.


  1. Benchmarking and Profiling
  2. Pure Python Optimizations
  3. Fast Array Operations with NumPy and Pandas
  4. C Performance with Cython
  5. Exploring Compilers
  6. Implementing Concurrency
  7. Parallel Processing
  8. Advanced Introduction to Concurrent and Parallel Programming
  9. Amdahl's Law
  10. Working with Threads in Python
  11. Using the with Statement in Threads
  12. Concurrent Web Requests
  13. Working with Processes in Python
  14. Reduction Operators in Processes
  15. Concurrent Image Processing
  16. Introduction to Asynchronous Programming
  17. Implementing Asynchronous Programming in Python
  18. Building Communication Channels with asyncio
  19. Deadlocks
  20. Starvation
  21. Race Conditions
  22. The Global Interpreter Lock
  23. The Factory Pattern
  24. The Builder Pattern
  25. Other Creational Patterns
  26. The Adapter Pattern
  27. The Decorator Pattern
  28. The Bridge Pattern
  29. The Facade Pattern
  30. Other Structural Patterns
  31. The Chain of Responsibility Pattern
  32. The Command Pattern