# More to explore ## uproot As opposed to {ref}`rdataframe`, let's go to the other end of the spectrum: ROOT I/O without using ROOT. The Python [uproot](https://pypi.org/project/uproot/) package reads ROOT files using Python and some commonly-used packages: [numpy](https://numpy.org/doc/stable/user/index.html#user), [awkward](https://awkward-array.org/doc/main/getting-started/index.html), and [pandas](https://pandas.pydata.org/docs/user_guide/index.html#user-guide). Uproot is particularly handy if you were already a Python expert before taking this ROOT tutorial, and would rather not have to touch ROOT again if you can help it. I've installed [uproot](https://uproot.readthedocs.io/en/latest/basic.html) in the Python installations available at Nevis.[^review] [^review]: I've played around with uproot. My initial (and highly-biased) opinion is that you have to be a full dues-paying member of the "ROOT-haters club" to do a serious ROOT-based analysis using uproot. For the kinds of simplistic analyses that I present in this tutorial, uproot is fine. But if you want to do work like that described in {ref}`Exercise 15 `, the uproot code may be even more cryptic than the equivalent [pyroot](https://root.cern/manual/python/)-based code. Another possible pitfall is that one has to think carefully about when uproot performs the event loop. As I described in {ref}`lazy-evaluation` with `RDataFrame`, it's possible to invoke uproot operations in the wrong order and get very inefficient code. According to the [uproot development page](https://github.com/scikit-hep/uproot5), uproot is primarily intended as a way to reorganize data in ROOT files into a form suitable to pass on to machine-learning libraries. From what I see of the package, its benefits (and limitations) are well-suited for that purpose. ## coffea The [coffea](https://coffeateam.github.io/coffea/) package is column-based analysis system specifically designed for high-energy physics. I think of it as a Python-only equivalent to {ref}`RDataFrames `. :::{figure-md} data_pipeline-fig :class: align-center xkcd data_pipeline by Randall Munroe. Hopefully your use of ROOT data will be more rational. :::