What is the fastest way to copy a 2D array to the Canvas?

I have a 128x32 display that shows scrolling mountains and 3 layers of stars in the background. I take the 4 layers of scenery and merge them into a 2D array, then I copy this the Canvas one pixel at a time.

for x in range (0,HatWidth):
    for y in range (0,HatHeight):
      r,g,b = rgb = FinalLayer[y][x]

This looping works great on a 64x32 display, but when I double the width to 128 it is noticeably slower.