title: Reading ROOT files to dataframes: uproot slower than root_numpy's tree2array
body: <p>I am trying to convert my flat ROOT ntuples into dataframes (via arrays). Currently, I am using root_numpy and would like to use uproot instead to avoid any ROOT dependencies. </p>
  
  <p>I have a list of string names of the 20 variables to save (from a total of 104 variables in the tree) named vars_to_save.</p>
  
  <p>In root_numpy I use:</p>
  
  <pre><code>rootFile = ROOT.TFile(f)
  intree = rootFile.Get(tree_name)
  arr = tree2array(intree,branches=vars_to_save) 
  df_root_numpy = pd.DataFrame(arr)
  </code></pre>
  
  <p>with this taking ~ 2 seconds  ( for 491176 events and the 20 variables in the list of strings vars_to_save)</p>
  
  <p>In uproot I have tried: </p>
  
  <pre><code>#attempt 1
  tree = uproot.open(f)[tree_name]
  df_uproot = tree.pandas.df(vars_to_save) 
  
  #attempt 2 
  tree = uproot.open(f)[tree_name]
  df_uproot = tree.arrays(vars_to_save, outputtype=pd.DataFrame)
  
  #attempt 3
  tree = uproot.open(f)[tree_name]
  arr = tree.arrays(vars_to_save)
  df_uproot = pd.DataFrame(arr)[vars_to_save]
  </code></pre>
  
  <p>with each taking ~ 45 seconds ( around 20 times slower). In attempt 3 I notice that the tree.arrays() step is the slowest step taking around 40 seconds.</p>
  
  <p>Is there a way in uproot to speed up this operation? </p>