Convert image to black and white and use it as array
===

I'am trying to convert a colored image to a black and white one.
The original image is the following:

![enter image description here][1]

I have a few problem. First:

    import pylab as pl
    import Image
        
    im = Image.open('joconde.png')
    
    pl.imshow(im)
    pl.axis('off')
    pl.show()

I get this:
![First result][2]
Why is it rotated?? That's not the point but I'd like to know why.

    im_gray = im.convert('1')
    
    pl.imshow(im_gray)
    pl.show() 

And here is the processed black and white image:
![enter image description here][3]

Now everything looks working. But I need to use that image as a numpy array in order to do some image processing. All I have to do is this:

    import numpy as np
    
    im_arr = np.array(im_gray)
    
    pl.imshow(im_arr)
    pl.axis('off')
    pl.show()

But I get this:
![enter image description here][4]

Why is this happening? I tried also:

    im_arr = np.array(im_gray, dtype='float')

or

    im_arr = np.asarray(im_gray)

But nothing seems working maybe the problem is in the show method but I don't know. Can someone help me please?

  [1]: http://i.stack.imgur.com/wWH3K.png
  [2]: http://i.stack.imgur.com/VMhMa.png
  [3]: http://i.stack.imgur.com/zBSth.png
  [4]: http://i.stack.imgur.com/29bdK.png