2010-01-04 26 views

Respuesta

18

Supongo que su columna y sus filas son solo una lista de listas?

Es decir, usted tiene el siguiente?

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

Para agregar otra fila, use el método de agregar una lista.

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

dando

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

Para agregar otra columna, que tendría que bucle sobre cada fila. Una manera fácil de hacer esto es con una lista de comprensión.

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

dando

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

y para convertir eso a una matriz, ¿simplemente hacer una matriz (lst)? –

+1

Eso debería funcionar. Probablemente haya una mejor manera de hacerlo con numpy, pero su pregunta original no especificaba tal. –

+0

gracias por contestar – ricardo

6

Hay muchas maneras de hacer esto en numpy, pero no todos ellos le permiten añadir la fila/columna de la matriz de destino en cualquier lugar (por ejemplo, anexar solo permite la adición después de la última fila/columna). Si quieres un solo método/función para añadir ya sea una fila o columna en cualquier posición en una matriz de destino, me gustaría ir con 'inserción':

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) 
Cuestiones relacionadas