2010-01-04 18 views
6

Devo aggiungere una colonna e una riga a un array numpy esistente in una posizione definita come possibile. perdono per il mio inglese regolare.Come posso aggiungere una riga e una colonna aggiuntive a un array?

+2

questo ha bisogno di un po 'più di informazioni –

+1

che tipo di array? lista di liste, array.array o numpy.array? –

+2

-1: Nessun codice .... –

risposta

18

Immagino che la colonna e le righe siano solo un elenco di elenchi?

Cioè, hai il seguente?

L = [[1,2,3], 
    [4,5,6]] 

Per aggiungere un'altra riga, utilizzare il metodo append di un elenco.

L.append([7,8,9]) 

dando

L = [[1,2,3], 
    [4,5,6], 
    [7,8,9]] 

Per aggiungere un'altra colonna, sarebbe necessario un ciclo su ogni riga. Un modo semplice per farlo è con una comprensione delle liste.

L = [x + [0] for x in L] 

dando

L = [[1,2,3,0], 
    [4,5,6,0]] 
+0

e per convertirlo in array basta fare array (lst)? –

+1

Questo dovrebbe funzionare. C'è probabilmente un modo migliore per farlo con Numpy, ma la tua domanda originale non ha specificato tale. –

+0

grazie per aver risposto – ricardo

6

Ci sono molti modi per fare questo in NumPy, ma non tutti consentono di aggiungere la riga/colonna alla matrice di destinazione in qualsiasi luogo (ad esempio, aggiungere consente solo l'aggiunta dopo l'ultima riga/colonna). Se si vuole un unico metodo/funzione per aggiungere una riga o colonna in qualsiasi posizione in un array di destinazione, vorrei andare con 'inserto':

T = NP.random.randint(0, 10, 20).reshape(5, 4) 
c = NP.random.randint(0, 10, 5) 
r = NP.random.randint(0, 10, 4) 
# add a column to T, at the front: 
NP.insert(T, 0, c, axis=1) 
# add a column to T, at the end: 
NP.insert(T, 4, c, axis=1) 
# add a row to T between the first two rows: 
NP.insert(T, 2, r, axis=0) 
Problemi correlati