vectores una tutorial transpuesta multiplicar multiplicacion matriz matrices elementos ejemplos array agregar python vector numpy concatenation

python - una - Concatenando vectores de columnas usando matrices numpy



transpuesta de una matriz en python numpy (2)

Me gustaría concatenar vectores de ''columna'' usando matrices numpy pero como numpy ve todas las matrices como vectores de fila por defecto, np.hstack y np.concatenate largo de cualquier eje no ayudan (y tampoco np.transpose como se esperaba).

a = np.array((0, 1)) b = np.array((2, 1)) c = np.array((-1, -1)) np.hstack((a, b, c)) # array([ 0, 1, 2, 1, -1, -1]) ## Noooooo np.reshape(np.hstack((a, b, c)), (2, 3)) # array([[ 0, 1, 2], [ 1, -1, -1]]) ## Reshaping won''t help

Una posibilidad (pero demasiado engorroso) es

np.hstack((a[:, np.newaxis], b[:, np.newaxis], c[:, np.newaxis])) # array([[ 0, 2, -1], [ 1, 1, -1]]) ##

¿Hay mejores maneras?


Creo que numpy.column_stack debería hacer lo que quieres. Ejemplo:

>>> a = np.array((0, 1)) >>> b = np.array((2, 1)) >>> c = np.array((-1, -1)) >>> numpy.column_stack((a,b,c)) array([[ 0, 2, -1], [ 1, 1, -1]])

Es esencialmente igual a

>>> numpy.vstack((a,b,c)).T

aunque. Como se dice en la documentación.


Intenté lo siguiente. Espero que esto sea lo suficientemente bueno para lo que estás haciendo?

>>> np.vstack((a,b,c)) array([[ 0, 1], [ 2, 1], [-1, -1]]) >>> np.vstack((a,b,c)).T array([[ 0, 2, -1], [ 1, 1, -1]])