skillfed

uproot

ROOT I/O in pure Python and NumPy.

uproot v5.7.5 1.2M downloads/30d#4,283 on PyPI269
Permissive license BSD-3-Clause Active released

What it is and what it does

Uproot is a pure-Python I/O library for reading and writing ROOT files, the standard data format in high-energy physics experiments. It streams data directly into NumPy arrays and other Python data structures without depending on the C++ ROOT library, making it lightweight and suitable for machine learning pipelines. The package integrates with NumPy, Awkward Array for irregular data, and optional libraries like Pandas and Dask for downstream analysis.

Unlike PyROOT or root_numpy, Uproot does not require a C++ ROOT installation, reducing setup complexity. It handles both simple columnar data and complex nested structures through its Awkward Array dependency. The library supports reading from local files and remote sources (S3, XRootD, HTTP) via fsspec, and can export to Pandas DataFrames or Dask collections for distributed computing.

Use it for:

  • Stream particle physics detector data from ROOT files into NumPy arrays for machine learning model training.
  • Convert ROOT histograms and TTrees to Pandas DataFrames for statistical analysis and plotting.
  • Read remote ROOT files from S3 or XRootD servers in a distributed Dask workflow without downloading locally.
  • Extract nested or jagged array structures from ROOT files using Awkward Array for complex event data.
  • Integrate ROOT data into Python-native analysis pipelines without installing the full C++ ROOT framework.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Uproot reads and writes ROOT files (the data format used in high-energy physics) directly in Python using NumPy, without requiring the C++ ROOT library.

Yes. Uproot is production-stable (Development Status 5), actively maintained, has no known vulnerabilities, and solves a specific problem—reading ROOT files in pure Python—with low install friction. It is the standard choice for HEP researchers and ML engineers working with CERN data who want to avoid C++ ROOT dependencies. Install it if you work with ROOT files or need to integrate them into Python data pipelines.

Install

uproot on PyPI

pip

pip install uproot

uv

uv add uproot

poetry

poetry add uproot

Installing uproot

Before you install

Low friction: pure Python wheel with seven runtime dependencies (awkward, cramjam, fsspec, numpy, packaging, typing-extensions, xxhash) that pip installs automatically. Active maintenance with a recent release 41 days ago.

License in practice

BSD-3-Clause is permissive; you can use, modify, and distribute this package freely in both open-source and commercial projects, provided you include the license notice.

Quickstart

pip install uproot

import uproot
file = uproot.open('data.root')
tree = file['tree_name']
array = tree['branch_name'].array()

Requires Python 3.10 or later.

Verify before relying

  • Whether remote file access (s3://, root://) requires optional dependencies to be installed separately.
  • Performance characteristics when handling very large ROOT files or streaming into distributed frameworks like Dask.

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 7 — awkward, cramjam, fsspec, numpy, packaging, typing-extensions, xxhash
Maintenance actively maintained — 41 days since the last release
Last repo commit
First released
Downloads 1,162,583/month — #4,283 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: uproot-5.7.5-py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchOperating System :: MacOSOperating System :: POSIXOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Information AnalysisTopic :: Scientific/Engineering :: MathematicsTopic :: Scientific/Engineering :: PhysicsTopic :: Software DevelopmentTopic :: Utilities

Tags

ROOT file reader pythonHEP data I/O libraryphysics data format parsernumpy ROOT file accessCERN ROOT format pythonparticle physics data streamingROOT to numpy conversion
physics-datahep-toolsdata-io

More Software Development packages