title: Creating a NumPy array directly from __array_interface__
body: <p>Suppose I have an <code>__array_interface__</code> dictionary and I would like to create a numpy view of this data from the dictionary itself. For example:</p>
  
  <pre><code>buff = {'shape': (3, 3), 'data': (140546686381536, False), 'typestr': '&lt;f8'}
  view = np.array(buff, copy=False)
  </code></pre>
  
  <p>However, this does not work as <code>np.array</code> searches for either the buffer or array interface as attributes. The simple workaround could be the following:</p>
  
  <pre><code>class numpy_holder(object):
      pass
  
  holder = numpy_holder()
  holder.__array_interface__ = buff
  view = np.array(holder, copy=False)
  </code></pre>
  
  <p>This seems a bit roundabout. Am I missing a straightforward way to do this?</p>