GitHub - scikit-hep/hist: Histogramming for analysis powered by boost-histogram (original) (raw)

histogram

Hist

Actions Status Documentation Status pre-commit.ci status

PyPI version Conda-Forge PyPI platforms DOI License

GitHub Discussion Gitter Binder Scikit-HEP

Hist is an analyst-friendly front-end forboost-histogram, designed for Python 3.8+ (3.6-3.7 users get older versions). See what's new.

Slideshow of features. See docs/banner_slides.md for text if the image is not readable.

Installation

You can install this library from PyPI with pip:

python3 -m pip install "hist[plot,fit]"

If you do not need the plotting features, you can skip the [plot] and/or[fit] extras. [fit] is not currently supported in WebAssembly.

Features

Hist currently provides everything boost-histogram provides, and the following enhancements:

Usage

from hist import Hist

Quick construction, no other imports needed:

h = ( Hist.new.Reg(10, 0, 1, name="x", label="x-axis") .Var(range(10), name="y", label="y-axis") .Int64() )

Filling by names is allowed:

h.fill(y=[1, 4, 6], x=[3, 5, 2])

Names can be used to manipulate the histogram:

h.project("x") h[{"y": 0.5j + 3, "x": 5j}]

You can access data coordinates or rebin with a j suffix:

h[0.3j:, ::2j] # x from .3 to the end, y is rebinned by 2

Elegant plotting functions:

h.plot() h.plot2d_full() h.plot_pull(Callable)

Development

From a git checkout, either use nox, or run:

python -m pip install -e .[dev]

See Contributing guidelines for information on setting up a development environment.

Contributors

We would like to acknowledge the contributors that made this project possible (emoji key):

Henry Schreiner🚧 💻 📖 Nino Lau🚧 💻 📖 Chris Burr💻 Nick Amin💻 Eduardo Rodrigues💻 Andrzej Novak💻 Matthew Feickert💻
Kyle Cranmer📖 Daniel Antrim💻 Nicholas Smith💻 Michael Eliachevitch💻 Jonas Eschle📖

This project follows the all-contributors specification.

Talks


Acknowledgements

This library was primarily developed by Henry Schreiner and Nino Lau.

Support for this work was provided by the National Science Foundation cooperative agreement OAC-1836650 (IRIS-HEP) and OAC-1450377 (DIANA/HEP). Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.