title: Numpy: use reshape or newaxis to add dimensions
body: <p>Either <code>ndarray.reshape</code> or <code>numpy.newaxis</code> can be used to add a new dimension to an array.  They both seem to create a view, is there any reason or advantage to use one instead of the other?</p>
  
  <pre><code>&gt;&gt;&gt; b
  array([ 1.,  1.,  1.,  1.])
  &gt;&gt;&gt; c = b.reshape((1,4))
  &gt;&gt;&gt; c *= 2
  &gt;&gt;&gt; c
  array([[ 2.,  2.,  2.,  2.]])
  &gt;&gt;&gt; c.shape
  (1, 4)
  &gt;&gt;&gt; b
  array([ 2.,  2.,  2.,  2.])
  &gt;&gt;&gt; d = b[np.newaxis,...]
  &gt;&gt;&gt; d
  array([[ 2.,  2.,  2.,  2.]])
  &gt;&gt;&gt; d.shape
  (1, 4)
  &gt;&gt;&gt; d *= 2
  &gt;&gt;&gt; b
  array([ 4.,  4.,  4.,  4.])
  &gt;&gt;&gt; c
  array([[ 4.,  4.,  4.,  4.]])
  &gt;&gt;&gt; d
  array([[ 4.,  4.,  4.,  4.]])
  &gt;&gt;&gt; 
  </code></pre>
  
  <p>`</p>