title: Slicing 3d numpy arrays
body: <p>Consider the following:</p>
  
  <pre><code>A = np.zeros((2,3))
  print(A)
  
  [[ 0.  0.  0.]
   [ 0.  0.  0.]]
  </code></pre>
  
  <p>This make sense to me.  I'm telling numpy to make a 2x3 matrix, and that's what I get.</p>
  
  <p>However, the following:</p>
  
  <pre><code>B = np.zeros((2, 3, 4))
  print(B)
  </code></pre>
  
  <p>Gives me this:</p>
  
  <pre><code>[[[ 0.  0.  0.  0.]
    [ 0.  0.  0.  0.]
    [ 0.  0.  0.  0.]]
  
   [[ 0.  0.  0.  0.]
    [ 0.  0.  0.  0.]
    [ 0.  0.  0.  0.]]]
  </code></pre>
  
  <p>This doesn't make sense to me.  Aren't I telling numpy to make a cube which has 4 2x3 matrices?  I'm even more confused because although the data structure looks incorrect, the slicing works exactly as planned:</p>
  
  <pre><code>print(B[:,:,1])
  
  [[ 0.  0.  0.]
   [ 0.  0.  0.]]
  </code></pre>
  
  <p>I'm missing something about how these arrays are constructed, but I'm not sure what.  Can someone explain what I'm missing or not understanding?</p>
  
  <p>Thanks so much!</p>