uproot3
ROOT I/O in pure Python and Numpy.
What it is and what it does
uproot3 is a pure-Python I/O library for reading and writing ROOT files, the standard data format in high-energy physics. It uses NumPy to cast blocks of data from ROOT files as NumPy arrays, avoiding the need to install the C++ ROOT framework. The library is designed to stream data into machine learning pipelines and scientific computing workflows.
The package depends on numpy, awkward0, uproot3-methods, and cachetools. It supports reading compressed ROOT files with optional dependencies like lz4 and xxhash, and can export data to Pandas DataFrames. However, the repository is archived and has not been maintained since 2021-02-19, making it a legacy tool for existing workflows rather than a foundation for new projects.
Use it for:
- Load particle physics data from ROOT files into NumPy arrays for machine learning model training
- Convert ROOT file histograms and trees to Pandas DataFrames for statistical analysis
- Stream large ROOT datasets lazily into memory-constrained environments using cachetools
- Export ROOT file data to other formats without installing the full C++ ROOT framework
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reads and writes ROOT files (the data format used in high-energy physics) using pure Python and NumPy, without requiring the C++ ROOT library.
No, unless you are maintaining legacy code that already depends on uproot3. The package is abandoned (last commit 2021-02-19) and uses outdated dependencies like awkward0. For new physics data pipelines, consider alternatives with active maintenance.
Install
uproot3 on PyPI
pip
pip install uproot3uv
uv add uproot3poetry
poetry add uproot3Installing uproot3
Before you install
Low friction to install. Maintenance is a concern: the repository is archived and the last commit was 2021-02-19, with the package classified as inactive. If you need active development or bug fixes, this is not the right choice.
License in practice
BSD 3-clause is permissive, allowing commercial and private use with minimal restrictions. You must include a copy of the license and disclaimer.
Quickstart
pip install uproot3
import uproot3
file = uproot3.open('data.root')
tree = file['tree_name']
arrays = tree.arrays()
Requires numpy (1.13.1+), awkward0, uproot3-methods, and cachetools. The package is abandoned and may not work with modern Python or ROOT file formats.
Verify before relying
- Whether uproot3 works with current ROOT file format versions and modern Python releases
- Whether dependencies like awkward0 remain compatible with current NumPy versions
- Performance characteristics on modern hardware and file sizes
Package facts
| License | BSD 3-clause (permissive) |
| Python support | supports the current Python release (>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — numpy, awkward0, uproot3-methods, cachetools |
| Maintenance | abandoned — 2,009 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 279,452/month — #8,120 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: uproot3-3.14.4-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
uprootUproot reads and writes ROOT files (the data…
permissive · top 5,000 on PyPI
uproot3-methodsAdds physics-oriented methods to ROOT file…
permissive · top 15,000 on PyPI
coffeacoffea provides columnar data analysis tools…
permissive · top 15,000 on PyPI
xrootdProvides Python bindings to XRootD, a…
copyleft · top 5,000 on PyPI
fastjetFastJet provides Python bindings to the FastJet…
permissive · top 15,000 on PyPI
vectorVector provides 2D, 3D, and 4D space-time…
permissive · top 15,000 on PyPI
fsspec-xrootdAdds XRootD storage support to fsspec, enabling…
permissive · top 5,000 on PyPI
tinynetrcRead, parse, and write .netrc credential files…
permissive · top 15,000 on PyPI
mplhepmplhep provides matplotlib styling and helper…
permissive · top 15,000 on PyPI
awkward0Manipulates complex, non-rectangular data…
permissive · top 15,000 on PyPI