logo

numpy.reshape() en Python

La función numpy.reshape() está disponible en el paquete NumPy. Como sugiere el nombre, remodelar significa 'cambios de forma'. La función numpy.reshape() nos ayuda a darle una nueva forma a una matriz sin cambiar sus datos.

A veces, necesitamos remodelar los datos de ancho a largo. Entonces, en esta situación, tenemos que remodelar la matriz usando la función reshape().

Sintaxis

 numpy.reshape(arr, new_shape, order='C') 

Parámetros

Existen los siguientes parámetros de la función reshape():

1) arr: tipo matriz

Este es un ndarray. Esta es la matriz fuente que queremos remodelar. Este parámetro es esencial y juega un papel vital en la función numpy.reshape().

nginx

2) new_shape: int o tupla de enteros

La forma en la que queremos convertir nuestra matriz original debe ser compatible con la matriz original. Si es un número entero, el resultado será una matriz unidimensional de esa longitud. Una dimensión de forma puede ser -1. Aquí, el valor se aproxima por la longitud de la matriz y las dimensiones restantes.

3) orden: {'C', 'F', 'A'}, opcional

El parámetro de orden de estos índices juega un papel crucial en la función reshape(). Estos órdenes de índice se utilizan para leer los elementos de la matriz de origen y colocar los elementos en la matriz reformada usando este orden de índice.

  1. El orden de índice 'C' significa leer/escribir los elementos que utilizan un orden de índice similar a C donde el índice del último eje cambia más rápido, de regreso al índice del primer eje que cambia más lentamente.
  2. El orden de índice 'F' significa leer/escribir los elementos que utilizan el orden de índice similar a Fortran, donde el índice del último eje cambia más lentamente y el índice del primer eje cambia más rápido.
  3. El orden 'C' y 'F' no toma en cuenta el diseño de la memoria de la matriz subyacente y solo se refiere al orden de indexación.
  4. El orden de índice 'A' significa leer/escribir los elementos en un orden de índice similar a Fortran, cuando arr es contiguo en la memoria; de lo contrario, use un orden similar a C.

Devoluciones

Esta función devuelve un ndarray. Es un objeto de vista nuevo si es posible; de lo contrario, será una copia. No hay garantía del diseño de la memoria de la matriz devuelta.

Ejemplo 1: ordenamiento de índices tipo C

 import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y 

Producción:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

En el código anterior

  • Hemos importado numpy con nombre de alias np.
  • Hemos creado una matriz 'a' usando la función np.arrange().
  • Hemos declarado la variable 'y' y hemos asignado el valor devuelto de la función np.reshape().
  • Hemos pasado la matriz 'x' y la forma en la función.
  • Por último, intentamos imprimir el valor de arr.

En el resultado, la matriz se representó como tres filas y cuatro columnas.

Ejemplo 2: Equivalente a C ravel y luego C remodelar

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y 

La función ravel() se utiliza para crear una matriz aplanada contigua. Se devuelve una matriz unidimensional que contiene los elementos de la entrada. Se hace una copia sólo cuando es necesaria.

recorrido posterior al pedido

Producción:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

Ejemplo 3: ordenamiento de índices tipo Fortran

 import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y 

Producción:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

En el código anterior

  • Hemos importado numpy con nombre de alias np.
  • Hemos creado una matriz 'a' usando la función np.arrange().
  • Hemos declarado la variable 'y' y hemos asignado el valor devuelto de la función np.reshape().
  • Hemos pasado la matriz 'x' y la forma y el orden del índice tipo Fortran en la función.
  • Por último, intentamos imprimir el valor de arr.

En el resultado, la matriz se representó como cuatro filas y tres columnas.

Ejemplo 4: ordenamiento de índices tipo Fortran

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y 

Producción:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

Ejemplo 5: se infiere que el valor no especificado es 2

 import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y 

En el código anterior

  • Hemos importado numpy con nombre de alias np.
  • Hemos creado una matriz 'a' usando la función np.arrange().
  • Hemos declarado la variable 'y' y hemos asignado el valor devuelto de la función np.reshape().
  • Hemos pasado la matriz 'x' y la forma (valor no especificado) en la función.
  • Por último, intentamos imprimir el valor de arr.

En el resultado, la matriz se representó como dos filas y cinco columnas.

Producción:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])