Python reshape array numpy, redimensionar de un arreglo.

En este tutorial explicamos el comando en Python reshape de la librería numpy. Con esta función podemos darle un nuevo tamaño a un arreglo, es decir, redimensionar un arreglo en cuanto a filas y columnas se refiere.

Podemos tener un arreglo de 1 dimensión y formar un arreglo de 2 filas y 3 columnas por ejemplo.

O bien tener un arreglo de varias filas y columnas y convertirlo en una lista, un arreglo de 1 dimensión.

Python reshape

Resumen rápido Python array reshape.

Aquí dejamos el resumen rápido para la función reshape en Python de la librería Numpy.

NOTA: (Encuentra estos resúmenes en Google buscando así: Resumen rápido Python “comando o función”).

Primero necesitamos importar Numpy. La función reshape tiene los siguientes parámetros:

np.reshape(arreglo, nuevaForma, order = “C”)

Dónde:

  • Arreglo, es el arreglo al que queremos redimensionar.
  • nuevaForma, las nuevas dimensiones del arreglo, deben de ser compatibles con el original. Puede ser: Int o Truple de int´s. Si colocamos un int (entero), el resultado es un arreglo de una dimensión del largo del entero.
  • Order, es opcional, puede tener 3 valores: “C”, “F” o “A”, cada uno lee y escribe de diferente manera el arreglo, dando un orden distinto en el resultado. Por default su valor es “C”. Puedes ver mas información aquí https://numpy.org/doc/stable/reference/generated/numpy.reshape.html

Nota: Para ser compatible la nueva dimensión debemos tener los mismos elementos. Un arreglo 3×3, no podemos hacerlo 2×2. Un arreglo 2×6 si podemos convertirlo en 4×3 o 1×12.

Aquí está el código de ejemplo, el resultado está en la primera imagen de este articulo.

import numpy as np

m = np.array( [ [1,2,3,4], [5,6,7,8], [9,10,11,12] ] )
print("Arreglo original (3,4): ")
print(m)

mt = np.reshape(m, (2, 6))

print("\nArreglo redimencionado (2,6) Python:")
print(mt)

m = np.arange( 9 )
print("\n\nArreglo original (1,9):")
print(m)

mt = np.reshape(m, (3,3))

print("\nArreglo redimencionado (3,3) Python:")
print(mt)

 

Cambiando el tamaño de arreglos en Python con el comando reshape.

En el resumen explicamos el comando Reshape de la librería numpy, aquí haremos algunos ejemplos, apra ver un poco más a detalle esta función.

Error al redimensionar.

Para que podamos cambiar el número de filas y columnas de un arreglo en Python, debemos cumplir una única condición, la cual es que las nuevas dimensiones sean compatibles con las dimensiones originales, es decir, que tengan el mismo número de elementos.

Si tenemos un arreglo de 1×8, podemos convertirlo en un arreglo de 2×4, 4×2 y 8×1.

Pero tendremos un error si queremos convertirlo en uno de 2×3, porque tenemos 8 elementos. O en uno de 4×4, porque tenemos 8 elementos y necesitamos 16 para el 4×4. Así veremos el error:

Python reshape array numpy

 

Convertir Lista en arreglo, Python.

Esto es muy sencillo de hacer con el comando reshape de numpy.

  • Primero declaramos nuestro arreglo unidimensional, en este caso con el comando arange.
  • Y luego con el comando reshape, indicamos las dimisiones nuevas que sean compatibles.

Reshape numpy

import numpy as np

m = np.arange( 8 )
print("\nArreglo original (1,8):")
print(m)

mt = np.reshape(m, (4,2))
print("\nArreglo redimencionado (4,2) Python:")
print(mt)

 

Convertir arreglo a lista o arreglo 1D.

Podemos invertir el comando anterior, en este caso solo debemos indicar un número entero para la forma del resultado.

  • Podemos escribir el número total de elementos.
  • Podemos escribir un -1 y enviará un arreglo 1D con todos los elementos del arreglo.

Matriz a lista python

import numpy as np

m = np.array([[1,2],[3,4],[5,6],[7,8]])
print("Arreglo original (2,4):")
print(m)

mt = np.reshape(m, (-1))
print("\nArreglo redimencionado (-1) Python:")
print(mt) 

Para más tutoriales de Python ve a este enlace.

Algunos temas que pueden interesarte:

Python transpose array (Matriz transpuesta).

Python try except (trycatch python).

Grados a radianes Python.