2010-01-04 4 views
6

Ich muss eine Spalte und und eine Zeile zu einem vorhandenen numpy Array an einer Position hinzufügen, die so definiert ist wie ich kann. Vergebung für mein normales Englisch.Wie kann ich einem Array eine zusätzliche Zeile und Spalte hinzufügen?

+2

Dies muss ein wenig mehr Informationen –

+1

welche Art von ein Array? Liste von Listen, array.array oder numpy.array? –

+2

-1: Kein Code .... –

Antwort

18

Ich nehme an, Ihre Spalte und Zeilen sind nur eine Liste von Listen?

Das heißt, Sie haben folgendes?

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

Um eine weitere Zeile hinzuzufügen, verwenden Sie die Append-Methode einer Liste.

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

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

geben eine weitere Spalte hinzuzufügen, würden Sie über jede Zeile Schleife haben. Ein einfacher Weg, dies zu tun, ist mit einem Listenverständnis.

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

geben

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

und das in Array nur Array (lst) zu konvertieren? –

+1

Das sollte funktionieren. Es gibt wahrscheinlich einen besseren Weg, dies mit numpy zu tun, aber Ihre ursprüngliche Frage hat dies nicht spezifiziert. –

+0

danke für die Beantwortung – ricardo

6

Es gibt viele Möglichkeiten, dies in numpy zu tun, aber nicht alle von ihnen können Sie bei jeden Ort (zB die Zeile/Spalte in dem Ziel-Array hinzuzufügen, hängen erlaubt nur den Zusatz nach der letzten Zeile/Spalte). Wenn Sie eine einzelne Methode/Funktion wollen entweder eine Zeile oder Spalte an einer beliebigen Position in einem Ziel Array anzuhängen, würde ich mit ‚Einsatz‘ gehen:

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) 
Verwandte Themen