I did some tests, and you have to be careful when using resize. When the array is in C-order, it only does the right thing when you shrink the first dimension (which is the case here). On the other hand if you do

     a = np.random.randn(3, 4)
     print a
     array([[ 0.12128351,  1.82986194,  0.81592292, -0.96984394],
              [-0.9248712 , -0.60570394, -0.08449048,  0.17815172],
              [-0.60258086,  0.81461079,  1.00294796,  0.55745498]])

     a.resize((3,2), refcheck=False)
     print a
     array([[ 0.12128351,  1.82986194],
              [ 0.81592292, -0.96984394],
              [-0.9248712 , -0.60570394]])

which would be wrong.