title: Converting numpy Void array to record array?
body: <p>I have a numpy array with 8 16 byte long void records that looks like this:</p>
  
  <pre><code>array([[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],
         [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],
         [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],
         [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],
         [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],
         [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],
         [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],
         [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]], 
         dtype='|V16')
  </code></pre>
  
  <p>And need to cast it to an array with 8 16B long records of a custom dtype that looks like this:</p>
  
  <pre><code>[(('x', 's0'), '&lt;u4'), (('y', 's1'), '&lt;u4'), (('z', 's2'), '&lt;u4'), ('padding0', '&lt;u4')]
  </code></pre>
  
  <p>How can I achieve that?</p>
  
  <p>I've tried <code>array.astype(self.dtype, copy=False, casting="unsafe")</code>,
  but I get </p>
  
  <blockquote>
    <p>ValueError: setting an array element with a sequence.</p>
  </blockquote>
  
  <p>Which doesn't make much sense to me.</p>
  
  <p>This data comes from PyOpenCL (memory mapping a buffer), I can't really change the input format or the dtype.</p>