Numpy: concatenando matrices multidimensionales y unidimensionales

Tengo una matriz numpy 2×2:

x = array(([[1,2],[4,5]])) 

que debo fusionar (o astackr, si lo desea) con una matriz unidimensional:

 y = array(([3,6])) 

agregándolo al final de las filas, creando así una matriz numpy de 2×3 que se mostraría así:

array ([[1, 2, 3], [4, 5, 6]])

Ahora el método propuesto para esto en las guías numpy es:

 hstack((x,y)) 

Sin embargo, esto no funciona, devolviendo el siguiente error:

ValueError: las matrices deben tener el mismo número de dimensiones

La única solución posible parece ser hacer esto:

 hstack((x, array(([y])).T )) 

que funciona, pero se ve y suena bastante pirata. Parece que no hay otra forma de transponer la matriz dada, de modo que hstack sea capaz de digerirla. Me preguntaba, ¿hay una forma más limpia de hacer esto? ¿No habría una manera de adormecer para adivinar lo que quería hacer?

La respuesta de unutbu funciona en general, pero en este caso también hay np.column_stack

 >>> x array([[1, 2], [4, 5]]) >>> y array([3, 6]) >>> np.column_stack((x,y)) array([[1, 2, 3], [4, 5, 6]]) 

También funciona:

 In [22]: np.append(x, y[:, np.newaxis], axis=1) Out[22]: array([[1, 2, 3], [4, 5, 6]])