Cómo cambiar el tamaño de una matriz en Python
Para cambiar el tamaño de una matriz en Python, use el método reshape() del módulo numpy.
reshape(a,d)
- El primer argumento (a) es el nombre del arreglo (vector o matriz) a transformar.
- El segundo argumento (d) es un número o una tupla con el nuevo tamaño, el nuevo número de filas y columnas del arreglo.
La función reshape() cambia el tamaño de la matriz sin eliminar los elementos.
Nota. El nuevo tamaño debe ser igual a la cardinalidad de la matriz anterior. Por ejemplo, si un vector tiene 10 elementos, se puede transformar en una matriz de 5x2 o 2x5. No se puede convertir en una matriz de 3x3 ni en ninguna otra cosa.
Ejemplo
Ejemplo 1 (vector a matriz)
Cree una matriz de 10 elementos utilizando el método de matriz.
import numpy as np
x=np.array([1,2,3,4,5,6,7,8,9,10])
La matriz x tiene una dimensión. Es un vector
Cambie la matriz a una matriz de 5x2 con función reshape.
y=np.reshape(x,[5,2])
Ahora la nueva matriz y tiene dos dimensiones.
>>> y
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10]])
Tiene los mismos elementos que el vector x pero dispuestos en una matriz.
Ejemplo 2
Es posible lograr el mismo resultado que en el ejemplo anterior utilizando el método reshape()
y=x.reshape([5,2])
El resultado final es el mismo.
Ejemplo 3 (de matriz a vector)
Crear una matriz de 2x5
import numpy as np
x=np.array([[1,2,3,4,5],[6,7,8,9,10]])
La matriz x tiene dos dimensiones
>>> x
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]])
Transforme la matriz en un vector.
z=np.reshape(x,10)
El nuevo array tiene una dimensión. Es un vector.
>>> z
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])