Transformando un vector de fila en un vector de columna en Numpy

Digamos que tengo un vector de fila de la forma (1, 256). Quiero transformarlo en un vector de columna de la forma (256, 1) en su lugar. ¿Cómo lo harías en Numpy?

Puedes usar la operación de transposición para hacer esto:

Ejemplo:

In [2]: a = np.array([[1,2], [3,4], [5,6]]) In [5]: np.shape(a) Out[5]: (3, 2) In [6]: a_trans = a.transpose() In [8]: np.shape(a_trans) Out[8]: (2, 3) In [7]: a_trans Out[7]: array([[1, 3, 5], [2, 4, 6]]) 

Tenga en cuenta que la matriz original aún permanecerá sin modificar. La operación de transposición solo hará una copia y la transpondrá.

Simplemente podemos usar la funcionalidad de remodelación de numpy:

 a=np.array([[1,2,3,4]]) a: array([[1, 2, 3, 4]]) a.shape (1,4) b=a.reshape(-1,1) b: array([[1], [2], [3], [4]]) b.shape (4,1) 

Esta es una muy buena pregunta.

Algunas de las formas que he comstackdo para hacer esto son:

 >> import numpy as np >> a = np.array([1, 2, 3], [2, 4, 5]) >> a >> array([[1, 2], [2, 4], [3, 5]]) 

Para convertir un vector de fila en un vector de columna en Python puede ser importante, por ejemplo, para usar la difusión :

 import numpy as np def colvec(rowvec): v = np.asarray(rowvec) return v.reshape(v.size,1) colvec([1,2,3]) * [[1,2,3], [4,5,6], [7,8,9]] 

Multiplica la primera fila por 1, la segunda fila por 2 y la tercera fila por 3:

 array([[ 1, 2, 3], [ 8, 10, 12], [ 21, 24, 27]]) 

En contraste, tratando de usar un vector de columna escrito como matriz:

 np.asmatrix([1, 2, 3]).transpose() * [[1,2,3], [4,5,6], [7,8,9]] 

falla con error ValueError: shapes (3,1) and (3,3) not aligned: 1 (dim 1) != 3 (dim 0) .