# Diving into python

We will use the python programming language throughout this project. Python is not only widely used in data analysis and science but also features a rich ecosystem of packages which provide industry-standard tools.

### Introduction to python

A very good start into learning python is this course:

* [https://swcarpentry.github.io/python-novice-inflammation](https://swcarpentry.github.io/python-novice-inflammation/)

Complementary to it, you can have a look into these notebooks if you want to brush up specific aspects, such as the numpy or matplotlib packages:

* <https://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-1-Introduction-to-Python-Programming.ipynb>
* <https://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-2-Numpy.ipynb>
* <https://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb>
* <https://www.datacamp.com/community/tutorials/pandas-tutorial-dataframe-python>

As a reference, you can refer to the freely available book "Think python":

* <https://greenteapress.com/thinkpython/thinkpython.pdf>

### Specific packages for High Energy Physics analysis:

#### Opening ROOT files

{% embed url="<https://github.com/scikit-hep/uproot4>" %}

#### Creating histograms in python

{% embed url="<https://github.com/scikit-hep/hist>" %}

#### Creating and manipulating four-vectors

{% embed url="<https://github.com/scikit-hep/vector>" %}

#### Specialised plotting routines and custom plot styles

{% embed url="<https://github.com/scikit-hep/mplhep>" %}

### Specific packages for data analysis:

#### Handling of columnar datasets

{% embed url="<https://pandas.pydata.org>" %}

#### Data visualisation

{% embed url="<https://seaborn.pydata.org>" %}

#### Scikit-learn

{% embed url="<https://scikit-learn.org/stable/>" %}

#### PyTorch

{% embed url="<https://pytorch.org>" %}
