2016-02-17 34 views
8

Possiedo un array 2D numpy [[1,2,3]]. Ho bisogno di aggiungere una matrice 1D NumPy, (diciamo [4,5,6]) ad esso, in modo che diventi [[1,2,3], [4,5,6]]Aggiunge un array 1d a un array 2D in Numpy Python

Questo è facilmente possibile utilizzare gli elenchi, in cui basta chiamare accoda sulla lista 2D.

Ma come si fa con gli array Numpy?

np.concatenate e np.append non funzionano. convertono la matrice in 1D per qualche motivo.

Grazie!

+0

'' vstack' fa np.concatenate ([np.atleast_2d (m) per m in tup], 0) '- in altre parole - assicurarsi che tutti gli ingressi sono in 2D e poi concatenare. – hpaulj

risposta

7

Si desidera vstack:

In [45]: a = np.array([[1,2,3]]) 

In [46]: l = [4,5,6] 

In [47]: np.vstack([a,l]) 
Out[47]: 
array([[1, 2, 3], 
     [4, 5, 6]]) 

È possibile impilare più righe a condizione che Le matrici devono avere la stessa forma lungo tutto il primo asse.

In [53]: np.vstack([a,[[4,5,6], [7,8,9]]]) 
Out[53]: 
array([[1, 2, 3], 
     [4, 5, 6], 
     [4, 5, 6], 
     [7, 8, 9]]) 
+0

non funziona in modo simile con hstack però ... col_vector_to_append = np.column_stack ([4, 5, 6]). T è necessario – Mehdi