2013-10-13 27 views

risposta

36

È possibile utilizzare np.pad():

a = np.ones((4, 3, 2)) 

# npad is a tuple of (n_before, n_after) for each dimension 
npad = ((0, 0), (1, 2), (2, 1)) 
b = np.pad(a, pad_width=npad, mode='constant', constant_values=0) 

print(b.shape) 
# (4, 6, 5) 

print(b) 
# [[[ 0. 0. 0. 0. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 0. 0. 0.] 
# [ 0. 0. 0. 0. 0.]] 

# [[ 0. 0. 0. 0. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 0. 0. 0.] 
# [ 0. 0. 0. 0. 0.]] 

# [[ 0. 0. 0. 0. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 0. 0. 0.] 
# [ 0. 0. 0. 0. 0.]] 

# [[ 0. 0. 0. 0. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 1. 1. 0.] 
# [ 0. 0. 0. 0. 0.] 
# [ 0. 0. 0. 0. 0.]]] 
+5

noti che (n_before, n_after) si riferisce al numero di righe/colonne; così (1,2) sopra, per la seconda dimensione significa, una riga prima (sopra) e due righe dopo (sotto). Allo stesso modo, (2,1) significa 2 righe prima (spostato a destra di 2 colonne di 0 e spostato a sinistra, riempimento di 1 colonna di zeri – berto77

+0

@ berto77 Grazie per il tuo commento, ho faticato molto –

Problemi correlati