2011-08-18 32 views

Respuesta

24

puede utilizar índice de dimensión múltiples:

import numpy as np 

wall = np.zeros((10,10),dtype=np.int) 
block = np.arange(1,7).reshape(2,3) 

x = 2 
y = 3 
wall[x:x+block.shape[0], y:y+block.shape[1]] = block 

la salida es:

>>> wall 
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 1, 2, 3, 0, 0, 0, 0], 
     [0, 0, 0, 4, 5, 6, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]) 
+0

Gracias! Me llevó 2 minutos detectar la diferencia entre tu versión correcta y la ingenua ... ;-) – nye17

Cuestiones relacionadas