# Differences

This shows you the differences between two versions of the page.

ep:labs:05 [2019/10/27 17:12]
ep:labs:05 [2020/11/10 16:44] (current)
Line 1: Line 1:
-====== Lab 05 - Plotting ======+====== Lab 05 - Plotting ​(Numpy & Matplotlib) ​======

===== Objectives ===== ===== Objectives =====

-  * Offer an introduction to Gnuplot +  * Offer an introduction to Numpy & matplotlib
-  * Get you familiarised with basic plots in Gnuplot+  * Get you familiarised with the numpy API
+  * Understand ​basic plotting with matplotlib

-===== Contents =====

-{{page>:​ep:​labs:​05:​meta:​nav&​nofooter&​noeditbutton}}

-===== Gnuplot Introduction ​=====+===== Python Scientific Computing Resources ​=====

-Gnuplot is freecommand-driveninteractive,​ function ​and data plotting program. It can be downloaded at https://​sourceforge.net/​projects/​gnuplot/​. The official Gnuplot documentation can be found at http://​gnuplot.sourceforge.net/​documentation.html.+In this lab, we will study new library in python that offers fastmemory efficient manipulation of vectorsmatrices ​and tensors**numpy**We will also study basic plotting of data using the most popular data visualization libraries in the python ecosystem**matplotlib**

-It was originally created ​to allow scientists and students to visualize mathematical functions ​and data interactively, but has grown to support many non-interactive uses such as web scripting. It is also used as a plotting engine by third-party applications such as Octave.+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.

-The command language of Gnuplot is case sensitive, i.e. commands and function names written in lowercase are not the same as those written in capitals. All command names may be abbreviated as long as the abbreviation is not ambiguous. Any number of commands may appear on a line, separated by semicolons (;). Strings may be set off by either single or double quotes, although there are some subtle differences. See syntax (p. 44) and quotes (p. 44) for more details in the Gnuplot documentation (http://​gnuplot.sourceforge.net/​docs_5.0/​gnuplot.pdf).+**Core computing libraries**

-Commands may extend over several input lines by ending each line but the last with a backslash (\). The backslash must be the last character on each line. The effect is as if the backslash ​and newline were not there. That is, no white space is implied, nor is a comment terminated. ​+  * numpy and scipy: scientific computing
+  * matplotlib: plotting library

-For built-in help on any topic, type **help** followed by the name of the topic or **help ?** to get a menu of available topics.+**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

-===== Tutorial =====

+**Statistics and data analysis**

-{{namespace>​:ep:labs:​05:​contents:​tutorial&​nofooter&​noeditbutton}}+  * pandasvery popular data analysis library
+  * statsmodelsstatistics

+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:**
+
+  - [[https://​perso.limsi.fr/​pointal/​_media/​python:​cours:​mementopython3-english.pdf)|python]]
+  - [[https://​s3.amazonaws.com/​assets.datacamp.com/​blog_assets/​Numpy_Python_Cheat_Sheet.pdf|numpy]]
+  - [[https://​s3.amazonaws.com/​assets.datacamp.com/​blog_assets/​Python_Matplotlib_Cheat_Sheet.pdf|matplotlib]]
+  - [[https://​s3.amazonaws.com/​assets.datacamp.com/​blog_assets/​Scikit_Learn_Cheat_Sheet_Python.pdf|sklearn]]
+  - [[https://​github.com/​pandas-dev/​pandas/​blob/​master/​doc/​cheatsheet/​Pandas_Cheat_Sheet.pdf|pandas]]
+
+**Other:**
+
+  - [[https://​stanford.edu/​~shervine/​teaching/​cs-229/​refresher-probabilities-statistics|Probabilities & Stats Refresher]]
+  - [[https://​stanford.edu/​~shervine/​teaching/​cs-229/​refresher-algebra-calculus|Algebra]]
+
+
+<​note>​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.</​note>​