Please select the courses you plan to attend for each of the two provided dates (Late January or Early March) - that's all there is to it, based on demand we'll schedule some dates. Course descriptions are listed further down the page.
There is no commitment when you fill in this survey, this is just to give us feedback on which courses need to be scheduled.
Course costs are approximately £350 per day, include a very tasty pub lunch and run in central London on working days.
Cheers, Ian at ModelInsight (

* 1. Please select each course you plan to attend, preferably for 1 date (but choose both if you're flexible), we'll use this to prioritise when we run the courses (hit the DONE button down below when you're done)

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