Course descriptions:

"Playing with data - pandas and matplotlib" (1 day)

Aimed at beginner Pythonista data scientists who want to load, manipulate and visualise data

We'll use pandas with many practical exercises on different sorts of data (including messy data that needs fixing) to manipulate, visualise and join data. You'll be able to work with your own data sets after this course, we'll also look at other visualise tools like Seaborn and Bokeh. This will suit people who haven't used pandas who want a practical introduction such as data journalists, engineers and semi-technical managers.

"Building a recommender system with Python" (1 day)

Aimed at intermediate Pythonistas who want to use pandas and numpy to build a working recommender engine, this covers both using data through to delivering a working data science product. You already know a little linear algebra and you've used numpy lightly, you want to see how to deploy a working data science product as a microservice (Flask) that could reliably be put into production.

"Statistics and Big Data using scikit-learn" (2 days)

Aimed at beginner/intermediate Pythonistas with some mathematical background and a desire to learn everyday statistics and to start with machine learning

Day 1 - Probability, distributions, Frequentist and Bayesian approaches, Inference and Regression, Experiment Design - part discussion and part practical

Day 2 - Applying these approaches with scikit-learn to everyday problems, examples may include (note *examples may change* this just gives a flavour) Bayesian spam detection, predicting political campaigns, quality testing, clustering, weather forecasting, tools will include Statsmodels and matplotlib.

"Hands on with Scikit-Learn" (5 days)

Aimed at intermediate Pythonistas who need a practical and comprehensive introduction to machine learning in Python, you've already got a basic statistical and linear algebra background

This course will cover all the terminology and stages that make up the machine learning pipeline and the fundamental skills needed to perform machine learning successfully. Aided by many hands on labs with Python scikit-learn the course will enable you to understand the basic concepts, become confident in applying the tools and techniques, and provide a firm foundation from which to dig deeper and explore more advanced methods.

"High Performance Python" (2 days)

Aimed at intermediate Pythonistas whose code is too slow

Day 1 - Profiling (CPU and RAM), compiling with Cython, using Numba, PyPy and Pythran (all the way through to using OpenMP)

Day 2 - Going multicore (multiprocessing) and multi-machine (IPython parallel), fitting more into RAM, probabilitistic counting, storage engines, Test Driven Development and several debugging exercises

A mix of theory and practical exercises, you'll be able to use the main Python tools to confidently and reliably make your code run faster