Programming language


Reference implementation

Jupyter Notebook (ipython) The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.

Common Libraries

Buildin libraries

Path manypulation functions os.path or object-oriented filesystem paths. pathlib
tempfile e.g.: tempfile.TemporaryDirectory
data serialization: e.g.: json, pickle
itertools e.g.: itertools.zip_longest
functools e.g.: functools.partial
collections e.g.: collections.defaultdict, collections.OrderedDict
contextlib e.g.: contextlib.contextmanager
Parallelization concurrent.futures e.g.: concurrent.futures.ThreadPoolExecutor
Shell commands subprocess e.g.:
Pretty printer pprint, alternative IPython.lib.pretty.pprint

And many more.


Numpy (np) is the base library for numeric problems. It contains the array datatype (np.ndarray) that is commonly used. You can find there many math functions (np.sum, np.einsum, np.linalg.norm, np.fft.fft, …).

Plotting: Matplotlib/seaborn

Plotting librarys. Matplotlib is the base library for plots in python. Additionally there are numerous libraries which focus on beatiful plots and easier handling which build upon matplotlib. We generally recommend to use seaborn for special plots such as histograms, violinplots etc.


High-Perfomance Table style data representation


Parallelisation of operations in DataFrames, Arrays or Lists

Scikit-Learn (SK-Learn)

Machine Learning Library containing many popular methods in the areas of Classification, Regression, Clustering, Dimensionality Reduction, Model Selectioan and Preprocessing.

Neural Networks

There are many Neural Networks Toolboxes available for python (SK-Learn beeing already one of them). We generally recommend using TensorFlow or PyTorch.


Symbolic computations


Experiment configuration library (log configuration, stdout, …) and command line interface: python -m with parameter1=2


Testing library