In recent years, Python has become a glue language for scientific computing. Although code written in Python is generally slow, it has a good connection with compiled C code and a common data abstraction through Numpy. Many data processing, statistical, and most machine learning software has a Python interface as a matter of course.
This tutorial will introduce you to core Python packages for science, such as NumPy, SciPy, Matplotlib, Pandas, and Numba, (part 1) as well as HEP-specific tools like iminuit, particle, pyjet, and pyhf (part 2). We'll especially focus on accessing ROOT data in uproot and awkward. Part 1 will also cover the Scientific Python Development Guide and a short discussion on packaging.