root_numpy

by scikit-hep

scikit-hep / root_numpy

The interface between ROOT and NumPy

128 Stars 52 Forks Last release: almost 2 years ago (4.8.0) BSD 3-Clause "New" or "Revised" License 942 Commits 34 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

.. -- mode: rst --


:warning:root_numpy is deprecated and unmaintained:warning:


root_numpy
has not been actively maintained in several years. This is mostly due to the emergence of new alternatives which are both faster and more flexible.
  • uproot provides support for reading and writing ROOT files without the need for an installation of ROOT.
    See here for details. 
    _
  • ROOT now natively supports converting objects into numpy arrays using either
    directly using TTree 
    _ or with
    the newer RDataFrame 
    _

root_numpy: The interface between ROOT and NumPy

.. image:: https://img.shields.io/pypi/v/rootnumpy.svg :target: https://pypi.python.org/pypi/rootnumpy .. image:: https://api.travis-ci.org/scikit-hep/rootnumpy.png :target: https://travis-ci.org/scikit-hep/rootnumpy .. image:: https://coveralls.io/repos/github/scikit-hep/rootnumpy/badge.svg?branch=master :target: https://coveralls.io/github/scikit-hep/rootnumpy?branch=master .. image:: https://landscape.io/github/scikit-hep/rootnumpy/master/landscape.svg?style=flat :target: https://landscape.io/github/scikit-hep/rootnumpy/master .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.592881.svg :target: https://doi.org/10.5281/zenodo.592881

[see the full documentation] 
_

rootnumpy is a Python extension module that provides an efficient interface between

ROOT 
and

NumPy 
. rootnumpy's internals are compiled C++ and can therefore handle large amounts of data much faster than equivalent pure Python implementations.

With your ROOT data in NumPy form, make use of NumPy's

broad library
, including fancy indexing, slicing, broadcasting, random sampling, sorting, shape transformations, linear algebra operations, and more. See this
tutorial 
to get started. NumPy is the fundamental library of the scientific Python ecosystem. Using NumPy arrays opens up many new possibilities beyond what ROOT offers. Convert your TTrees into NumPy arrays and use
SciPy 
_ for numerical integration and optimization,
matplotlib 
_ for plotting,
pandas 
_ for data analysis,
statsmodels 
_ for statistical modelling,
scikit-learn 
_ for machine learning, and perform quick exploratory analysis in a
Jupyter notebook 
_.

At the core of rootnumpy are powerful and flexible functions for converting

ROOT TTrees 
into

structured NumPy arrays
_ as well as converting NumPy arrays back into ROOT TTrees. rootnumpy can convert branches of strings and basic types such as bool, int, float, double, etc. as well as variable-length and fixed-length multidimensional arrays and 1D or 2D vectors of basic types and strings. rootnumpy can also create columns in the output array that are expressions involving the TTree branches similar to
TTree::Draw()
.

Did we mention that root_numpy is fast?

.. image:: benchmarks/bench_tree2array.png

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.