title: PyTables vs Matlab HDF5 read times
body: <p>I have an HDF5 output file from NASTRAN that contains mode shape data.  I am trying to read them into Matlab and Python to check various post-processing techniques.  The file in question is in the local directory for both of these tests.  The file is semi-large at 1.2 GB but certainly not that large in terms of HDF5 files I have read previously.  There are 17567342 rows and 8 columns in the table I want to access.  The first and last columns are integers the middle 6 are floating point numbers.</p>
  
  <p>Matlab:</p>
  
  <pre><code>file = 'HDF5.h5';
  hinfo = hdf5info(file);
  % ... Find the dataset I want to extract
  t = hdf5read(file, '/NASTRAN/RESULT/NODAL/EIGENVECTOR');
  </code></pre>
  
  <p>This last operation is extremely slow (can be measured in hours).</p>
  
  <p>Python:</p>
  
  <pre><code>import tables
  hfile = tables.open_file("HDF5.h5")
  modetable = hfile.root.NASTRAN.RESULT.NODAL.EIGENVECTOR
  data = modetable.read()
  </code></pre>
  
  <p>This last operation is basically instant.  I can then access <code>data</code> as if it were a numpy array.  I am clearly missing something very basic about what these commands are doing.  I'm thinking it might have something to do with data conversion but I'm not sure.  If I do <code>type(data)</code> I get back <code>numpy.ndarray</code> and <code>type(data[0])</code> returns <code>numpy.void</code>.  </p>
  
  <p>What is the correct (i.e. speedy) way to read the dataset I want into Matlab?</p>