As discussed earlier, the scientific Python ecosystem can be organised, schematically, as a layered set of libraries and packages ever more specialised, from foundational and key libraries such as NumPy, Pandas and matplotlib, to domain-specific projects:
At the time this popular slide was prepared and presented (2017), one could ask itself where the HEP domain-specific projects were. Scikit-HEP came to "fill the gap" for Particle Physics just about that time (Autumn 2016). (Others did the same, later on, as seen in the introduction notebook.)
The Scikit-HEP project has had from the onset clearly-defined goals, and it cherishes a few core values:
As a result, the tools showcased here aim to make it easy and Pythonic to perform HEP analysis in the scientific Python ecosystem.
Very many topics are addressed within the project!
Here is an overview of the Scikit-HEP packages that are most popular and/or most actively used and maintained:
A "whetting your appetite" mini gallery ...:
![]() |
![]() |
![]() |
![]() |
The project has a special package, scikit-hep
, which is a metapackage. Unlike all others, which target specific topics, this metapackage simply provides an easy way to have a compatible set of project packages installed via a simple conda install scikit-hep
(or pip install scikit-hep
) command.
The Scikit-HEP packages used in these notebooks are in fact installed via the metapackage. It is trivial to check the available versions:
import skhep
skhep.show_versions()
to Hans Dembinski, Henry Schreiner, Jim Pivarski, Jonas Eschle and others for knowingly (or unknowingly) providing material and/or inspiration for these tutorial notebooks!