**This is an old revision of the document!**

- Offer an introduction to Numpy & matplotlib
- Get you familiarised with the numpy API
- Understand basic plotting with matplotlib

In this lab, we will study a new library in python that offers fast, memory efficient manipulation of vectors, matrices and tensors: **numpy**. We will also study basic plotting of data using the most popular data visualization libraries in the python ecosystem: **matplotlib**.

For scientific computing we need an environment that is easy to use, and provides a couple of tools like manipulating data and visualizing results. Python is very easy to use, but the downside is that it's not fast at numerical computing. Luckily, we have very eficient libraries for all our use-cases.

Core computing libraries

- numpy and scipy: scientific computing
- matplotlib: plotting library

**Machine Learning**

- sklearn: machine learning toolkit
- tensorflow: deep learning framework developed by google
- keras: deep learning framework on top of `tensorflow` for easier implementation
- pytorch: deep learning framework developed by facebook

**Statistics and data analysis**

- pandas: very popular data analysis library
- statsmodels: statistics

We also have advanced interactive environments:

- Ipython: advanced python console
- Jupyter: notebooks in the browser

There are many more scientific libraries available.

Check out these cheetsheets for fast reference to the common libraries:

**Cheat sheets:**

**Other:**

This lab is organized in a Jupyer Notebook hosted on Google Colab. You will find there some intuitions and applications for numpy and matplotlib. Check out the Tasks section below.

For this lab, we will use Google Colab for exploring numpy and matplotlib. Please solve your tasks here by clicking โ**Open in Colaboratory**โ.

You can then export this python notebook as a PDF (**File โ Print**) and upload it to **Moodle**.

Please take a minute to fill in the ** feedback form** for this lab.