Comment faire un damier dans numpy?

Je suis en utilisant numpy pour initialiser un réseau de pixels gris damier (la représentation classique de "pas de pixels", ou transparent). Il semble qu'il devrait y avoir un whizzy façon de le faire avec numpy est étonnant tableau d'affectation ou de découpage en tranches ou en dés opérations, mais c'est le meilleur que j'ai trouvé:

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

Il fonctionne, mais je m'attendais à quelque chose de plus simple.

Je pense que tu veux dire numpy.zeros((h, w, 3), ...) (retournement w et h).

OriginalL'auteur Ned Batchelder | 2010-01-30