title: Numpy stack with unequal shapes
body: <p>I've noticed that the solution to <a href="https://stackoverflow.com/questions/18595488/combining-2d-arrays-to-3d-arrays">combining 2D arrays to 3D arrays</a> through <code>np.stack</code>, <code>np.dstack</code>, or simply passing a list of arrays only works when the arrays have same <code>.shape[0]</code>.</p>
  
  <p>For instance, say I have:</p>
  
  <pre><code>print(arr)
  [[0 1]
   [2 3]
   [4 5]
   [6 7]
   [8 9]]
  </code></pre>
  
  <p>it easy easy to get to:</p>
  
  <pre><code>print(np.array([arr[2:4], arr[3:5]])) # same shape
  [[[4 5]
    [6 7]]
  
   [[6 7]
    [8 9]]]
  </code></pre>
  
  <p>However, if I pass a list of arrays of unequal length, I get:</p>
  
  <pre><code>print(np.array([arr[:2], arr[:3]]))
  [array([[0, 1],
         [2, 3]])
   array([[0, 1],
         [2, 3],
         [4, 5]])]
  </code></pre>
  
  <p>How can I get to simply:</p>
  
  <pre><code>[[[0, 1]
    [2, 3]]
   [[0, 1]
    [2, 3]
    [4, 5]]]
  </code></pre>
  
  <p>What I've tried: a number of other <a href="https://docs.scipy.org/doc/numpy/reference/routines.array-manipulation.html" rel="nofollow noreferrer">Array manipulation routines</a>.</p>
  
  <p>Note: ultimately want to do this for more than 2 arrays, so <code>np.append</code> is probably not ideal.</p>