How to convert between NumPy array and PIL Image

This example illustrates converting a 3-channel RGB PIL Image to 3D NumPy array and back:

import numpy
import PIL

# Convert PIL Image to NumPy array
img = PIL.Image.open("foo.jpg")
arr = numpy.array(img)

# Convert array to Image
img = PIL.Image.fromarray(arr)

Tried with: Python 2.7.3 and Ubuntu 12.04