
Sebastián Andrade
PreguntaSolo por curiosidad, al usar el metodo reshape de numpy pense que me retornaria la matriz transpuesta pero no fue asi ¿entonces como funciona el metodo reshape?
Sebastian vier
Lo que hace reshape es lo pone todo en una línea y comienza nivel por nivel a separar los arrays.
Por eso si tú tienes [[0,1],[2,3],[4,5]] que es una matriz de 3,2 (desde dentro hacia afuera). La matriz está forma de 3 vectores con 2 elementos cada vector. Si le pide reshape(2,3) te va a dar. primero va a separar [0,1,2,3,4,5] en vectores de 3. [0,1,2] y [3,4,5] y luego te va a juntar eso 2 vectores en un única matriz => [[0,1,2] , [3,4,5]]. En cambio transpose agarra lo que nosotros llamaríamos columna.
Sebastian vier
El método reshape lo que hace es cambiar la forma de la matriz. Bastante obvio? Por ejemplo si tienes una matrix.shape = (4,2) uno puedo pedirle a numpy que sea (2,4). Esto es muy útil si quieres crear una matriz con 10 filas y 10 columnas para todos los valores del 1 al 100. Haces np.array([i for i in range(1,101)).reshape(10,10)
Lo único que siempre tienes que tener en cuenta con array.reshape es que el número que el producto del array.shape sean iguales a array.size. Es decir que los elementos se puedan distribuir con el nuevo forma al completo.

Anthony Ismael Manotoa Moreno
Hola :)
Yo lo entendí de esta manera: Tienes un vector, digamos de 8 elementos (coordenadas, etc.)
vector = np.arange(1,9) >>> array([1, 2, 3, 4, 5, 6, 7, 8])
Entonces puedes hacerle un reshape para que se transforme de vector a matriz, siempre y cuando esos 8 elementos den en las dimensiones que coloques, dicho de otra manera, al multiplicar las dimensiones tiene que dar igual a 8:
print(vector.reshape(2,4)) >>> [[1 2 3 4] [5 6 7 8]] print(vector.reshape(4,2)) >>> [[1 2] [3 4] [5 6] [7 8]] print(vector.reshape(8,1)) >>> [[1] [2] [3] [4] [5] [6] [7] [8]]
Y si escoges algo que no cumpla con lo anterior:
print(vector.reshape(2,5)) >>> ValueError: cannot reshape array of size 8 into shape (2,5)
Por último, podemos hacer reshape a tensores o cosas de muchas dimensiones que no tengo idea de cómo se llamen jajaja, pero aquí un reshape a 8 dimensiones:
print(vector.reshape(1,1,1,1,1,1,8,1)) >>> [[[[[[[[1] [2] [3] [4] [5] [6] [7] [8]]]]]]]]

jhonatan larico
no hay matemática detrás solo estas modificando el tamaño de la matriz ejm si tienes una matriz A = 3X4 y haces A.reshape(6x2) solo estas modificando la forma de la matriz. La única consideración es que los tamaños de la matriz deben coincidir.

Sebastián Andrade
Si, eso lo tengo entendido pero mi pregunta es ¿como hace matematicamente esta operacion la libreria?

jhonatan larico
reshape modifica el tamaño de tu matriz