Writing High Performance Python Code

© Elephant Scale October 21, 2020


Python is a very popular, easy-to-use language that is widely adopted by developers, admins and data scientists. However, here be dragons! Many people who pick up Python lack proper coding discipline, which results in code that is hard to maintain and that runs painfully slow.

This course teaches good Python coding discipline, how to avoid bottlenecks and to write high performance code in Python

What you will learn:

  • Well-architected Python project
  • Understand python execution architecture
  • Learn to use profilers to spot bottlenecks
  • Efficient search and retrieval on Collections
  • Using numpy for fast numeric operations
  • Compiling to native code


Half day to a day


Developers, data analysts, data scientists

Skill level



  • Basic knowledge of Python language is recommended

Lab environment

  • Students will need to have a Python development environment like Anaconda
  • Instructions will be provided on how to set this up

Students will need the following

  • A reasonably modern laptop
  • Chrome browser

Detailed Course Outline

Well-structured project

  • Modeling
  • Running
  • Testing

Profiling and optimization

  • Timing
  • Profiling with CProfiler
  • Optimization

Understand Execution Architecture

  • Python’s virtual machine
  • Understand CPU/Memory/Cache/Disk

Efficient search and retrieval on collections

  • Computational complexity
  • Working with Lists and Deques
  • Lists vs Arrays
  • Using Dictionaries
  • Sets
  • Heaps and priority queues
  • Use caching
  • Memory optimization

Using numpy for fast numeric operations

  • Introduction to Numpy library
  • Converting numeric code to Numpy

Compiling to native code

  • Introduction to python compilers
  • Using Cython