Я использую numpy для инициализации массива пикселей на серой шахматной доске (классическое представление для "без пикселей" или прозрачное). Кажется, что должен быть какой-то свистящий способ сделать это с помощью numpy amazing array assign/slicing/dicing, но это лучшее, что я придумал:
w, h = 600, 800
sq = 15 # width of each checker-square
self.pix = numpy.zeros((w, h, 3), dtype=numpy.uint8)
# Make a checkerboard
row = [[(0x99,0x99,0x99),(0xAA,0xAA,0xAA)][(i//sq)%2] for i in range(w)]
self.pix[[i for i in range(h) if (i//sq)%2 == 0]] = row
row = [[(0xAA,0xAA,0xAA),(0x99,0x99,0x99)][(i//sq)%2] for i in range(w)]
self.pix[[i for i in range(h) if (i//sq)%2 == 1]] = row
Это работает, но я надеялся на что-то более простое.