title: numpy.ndarray vs pandas.DataFrame
body: <p>I need to make a strategic decision about choice of the basis for data structure holding statistical data frames in my program.</p>
  
  <p>I store hundreds of thousands of records in one big table. Each field would be of a  different type, including short strings. I'd perform multiple regression analysis and manipulations on the data that need to be done quick, in real time. I also need to use something, that is relatively popular and well supported. </p>
  
  <p>I know about the following contestants:</p>
  
  <h2>list of <code>array.array</code></h2>
  
  <p>That is the most basic thing to do. Unfortunately it doesn't support strings. And I need to use numpy anyway for its statistical part, so this one is out of question.</p>
  
  <h2><code>numpy.ndarray</code></h2>
  
  <p>The <code>ndarray</code> has ability to hold arrays of different types in each column (e.g. <code>np.dtype([('name', np.str_, 16), ('grades', np.float64, (2,))])</code>). It seems a natural winner, but...</p>
  
  <h2><code>pandas.DataFrame</code></h2>
  
  <p>This one is built with statistical use in mind, but is it efficient enough?</p>
  
  <p>I read, that the <code>pandas.DataFrame</code> is <a href="http://pandas.pydata.org/pandas-docs/stable/dsintro.html" rel="noreferrer">no longer based on the <code>numpy.ndarray</code></a> (although it shares the same interface). Can anyone shed some light on it? Or maybe there is an even better data structure out there?</p>