Digamos que tengo una matriz a:
a = np.array([[1,2,3], [4,5,6]])
array([[1, 2, 3],
[4, 5, 6]])
Me gustaría convertirlo en una matriz 1D (es decir, un vector de columna):
b = np.reshape(a, (1,np.product(a.shape)))
pero esto vuelve
array([[1, 2, 3, 4, 5, 6]])
que no es lo mismo que:
array([1, 2, 3, 4, 5, 6])
Puedo tomar el primer elemento de esta matriz para convertirla manualmente en una matriz 1D:
b = np.reshape(a, (1,np.product(a.shape)))[0]
pero esto requiere que sepa cuántas dimensiones tiene la matriz original (y concatene [0] cuando se trabaja con dimensiones más altas)
¿Existe una forma independiente de las dimensiones de obtener un vector de columna / fila de un ndarray arbitrario?
ravel()devuelve una vista, pero eso no siempre es cierto. Hay casos en los queravel()devuelve una copia. </