Uproot is a library for reading and writing ROOT files in pure Python and NumPy.

Unlike the standard C++ ROOT implementation, Uproot is only an I/O library, primarily intended to stream data into machine learning libraries in Python. Unlike PyROOT and root_numpy, Uproot does not depend on C++ ROOT. Instead, it uses Numpy to cast blocks of data from the ROOT file as Numpy arrays.

# How to install

Uproot can be installed from PyPI using pip. Awkward Array is optional but highly recommended:

    pip install uproot awkward

Uproot is also available using conda (in this case, Awkward Array is automatically installed):

    conda install -c conda-forge uproot

If you have already added `conda-forge` as a channel, the `-c conda-forge` is unnecessary. Adding the channel is recommended because it ensures that all of your packages use compatible versions (see conda-forge docs):

    conda config --add channels conda-forge
    conda update --all

# Documentation

ROOT is a C++ toolkit for data analysis, part of which is the ROOT file format. Over an exabyte of particle physics data are stored in ROOT files around the world.

Uproot is a Python implementation of ROOT I/O, independent of the ROOT toolkit itself (including ROOT’s Python interface, PyROOT).

- If you need help understanding ROOT and its ecosystem, see the ROOT project documentation.

- If you know what a ROOT file is but are unfamiliar with Uproot, see the Getting started guide.

- If you are migrating from an older version to Uproot 4 or 5, see the Uproot 3 → 4+ cheat-sheet.

- If you need detailed descriptions of a class’s properties or a function’s parameters, see the left-bar on this site (≡ button on mobile) or use `help` in Python, `?` or shift-tab in iPython/Jupyter.

# Getting help

- Report bugs, request features, and ask for additional documentation on GitHub Issues.

- If you have a “How do I…?” question, start a GitHub Discussion with category “Q&A”.

- Alternatively, ask about it on StackOverflow with the [uproot] tag. Be sure to include tags for any other libraries that you use, such as Pandas or PyTorch.

- To ask questions in real time, try the Gitter Scikit-HEP/uproot chat room.