Shoud I use numpy for a image manipulation program? why
Well I think you could do that, but maybe less convenient. The reasons could be:

numpy supports all the matrix manipulations and since it is optimized, could be much faster (You can also switch to OpenBLAS to make it amazingly faster). For image-processing problems, in some cases where images become larger, it could be much demanding for the speed.
numpy has lots of useful function handles, such as numpy.fft for Fourier Tranformation, or numpy.conv to do the convolution. This could be critical for image processing.
All the modules, or packages are nearly all based on numpy, such as scipy, graphlab and matplotlib. For example, you should use 'import matplotlib.pyplot as plt; plt.imshow()' to show images; well some other arrays could be hardly accepted as the arguments.
Is there any reason why I should use numpy to represent pixels in an image manipulation program as opposed to just storing the values in my own array of numbers? Currently I am doing the latter but I see lots of people talking about using numpy for representing pixels as multidimensional arrays. Other than that are there any reasons why I should be using numpy as opposed to my own implementation?