Showing an image with pylab.imshow()

This is the problem, if you pass a 3D ndarray, it expects that you will have 3 or 4 planes (RGB or RGBA) (Read the code on line 410 in the last frame of the stack trace).

You just need to get rid of the extra dimension using

dna = dna.squeeze()

or

imshow(dna.squeeze())

To see what squeeze is doing, see the following example:

a = np.arange(25).reshape(5, 5, 1)
print a.shape # (5, 5, 1)
b = a.squeeze()
print b.shape # (5, 5)

Leave a Comment