2012-12-20 18 views
5

forse questa è una domanda facile, ma esiste un modo rapido per duplicare gli elementi in un array? Dovrebbe funzionare come in questo modo per il 3D:elementi duplicati di numpy

1 2 3 
4 5 6 
7 8 9 

1 1 2 2 3 3 
1 1 2 2 3 3 
4 4 5 5 6 6 
4 4 5 5 6 6 
7 7 8 8 9 9 
7 7 8 8 9 9 

ho provato con 3 nidificato per-loop, ma questo era veramente lento.

risposta

6
>>> a = np.array([[1, 2, 3], 
        [4, 5, 6], 
        [7, 8, 9]]) 
>>> np.repeat(np.repeat(a, 2, 0), 2, 1) 

array([[1, 1, 2, 2, 3, 3], 
     [1, 1, 2, 2, 3, 3], 
     [4, 4, 5, 5, 6, 6], 
     [4, 4, 5, 5, 6, 6], 
     [7, 7, 8, 8, 9, 9], 
     [7, 7, 8, 8, 9, 9]]) 
+0

Ottima soluzione! Ma ho capito che questa funzione cambia il dtype da float64 a float32. Posso evitare questo? – Christian

+1

@Christian: non cambia il dtype per me. – eumiro

+0

scusa, colpa mia - ho usato un'altra funzione che ha distrutto il dtype. Grazie! :) – Christian

Problemi correlati