Trees are currently read with uproot.TTreeMethods.arrays(), which reads the entire tree into memory. This was done because lazyarrays() returns ChunkedArrays by default, which cannot be sliced in the same ways as JaggedArrays, and these kinds of slices are necessary for query selections. This method is certainly not optimal, but it works fine with relatively small ntuples. For multi-GB files, however, this will be extremely slow and likely fill up the memory and eventually crash.
It looks like the lazyarrays() problem was actually fixed by https://github.com/scikit-hep/uproot/issues/412 in awkward-0.12.17, so requiring that should be sufficient to go back to lazyarrays().
Trees are currently read with
uproot.TTreeMethods.arrays()
, which reads the entire tree into memory. This was done becauselazyarrays()
returnsChunkedArrays
by default, which cannot be sliced in the same ways asJaggedArrays
, and these kinds of slices are necessary for query selections. This method is certainly not optimal, but it works fine with relatively small ntuples. For multi-GB files, however, this will be extremely slow and likely fill up the memory and eventually crash.