Remodelación de matrices en NumPy

La remodelación de matrices en Python se puede realizar utilizando bibliotecas como NumPy , que proporcionan funciones para cambiar la forma de una matriz según sea necesario.


Reformar de 1-D a 2-D

Puedes remodelar una matriz unidimensional (1-D) en una matriz bidimensional (2-D) utilizando la función reshape() . Por ejemplo, si tienes una matriz unidimensional arr con 12 elementos y deseas convertirla en una matriz 2-D de forma (4, 3) :

Ejemplo

    import numpy as np

# Crear una matriz unidimensional de 12 elementos
arr = np.arange(12)

# Reformar en una matriz 2-D
# Reformar en una matriz 2-D de 4 filas y 3 columnas
reshaped_arr = arr.reshape(4, 3)
print(reshaped_arr)
print(reshaped_arr)
  
Abrir en editor

Reformar de 1-D a 3-D

Del mismo modo, puedes remodelar una matriz unidimensional en una matriz tridimensional (3-D) utilizando reshape() . Por ejemplo, si tienes una matriz unidimensional arr con 24 elementos y deseas convertirla en una matriz 3-D de forma (2, 3, 4) :

Ejemplo

    import numpy as np

matriz = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

import numpy as np

# Crear una matriz unidimensional de 24 elementos
arr = np.arange(24)

# Reformar en una matriz 3-D
# Reformar en una matriz 3-D de 2x3x4
reshaped_arr = arr.reshape(2, 3, 4)
print(reshaped_arr)
print(reshaped_arr)
  
Abrir en editor

¿Podemos remodelarnos en cualquier forma?

Sí, en general, puedes remodelar una matriz en una forma compatible con el número total de elementos en la matriz original. Sin embargo, ten en cuenta que la forma que especifiques debe ser compatible con la cantidad total de elementos en la matriz original. De lo contrario, obtendrás un error.


Devuelve Copiar o Ver

Cuando utilizas reshape() , generalmente obtienes una vista de la matriz original si la remodelación es posible sin necesidad de copiar los datos. Sin embargo, en algunos casos, NumPy puede devolver una copia si la remodelación requiere cambios en la disposición de la memoria.


Dimensión Desconocida

Puedes utilizar -1 en una dimensión al usar reshape() para indicar que deseas que NumPy calcule automáticamente el tamaño de esa dimensión en función del tamaño total y las otras dimensiones conocidas. Por ejemplo:

Ejemplo

    import numpy as np

# Crear una matriz unidimensional de 24 elementos
arr = np.arange(24)

# NumPy calculará automáticam
# NumPy calculará automáticamente el tamaño de la última dimensión
reshaped_arr = arr.reshape(2, 3, -1)
print(reshaped_arr)
print(reshaped_arr)
  
Abrir en editor

Aplanando las Matrices

Para convertir una matriz de cualquier dimensión en una matriz unidimensional, puedes utilizar la función ravel() o flatten() en NumPy. Ambas funciones aplanarán la matriz original.

Ejemplo

    import numpy as np

# Crear una matriz unidimensional de 12 elementos
arr = np.arange(12)

# Reformar en una matriz 2-D
# Reformar en una matriz 2-D de 4 filas y 3 columnas
reshaped_arr = arr.reshape(4, 3)
print(reshaped_arr)
print(reshaped_arr)
  

Espero que esta lección te haya ayudado a comprender mejor cómo remodelar matrices en NumPy. Si tienes alguna pregunta adicional, no dudes en preguntar.

Practica Remodelación de matrices en NumPy en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Crear una matriz unidimensional de 12 elementos

Puedes remodelar una matriz unidimensional (1-D) en una matriz bidimensional (2-D) utilizando la función reshape() . Por ejemplo, si tienes una matriz unidimens.

Ejemplo

    import numpy as np

# Crear una matriz unidimensional de 12 elementos
arr = np.arange(12)

# Reformar en una matriz 2-D
# Reformar en una matriz 2-D de 4 filas y 3 columnas
reshaped_arr = arr.reshape(4, 3)
print(reshaped_arr)
  
Abrir en editor

Ejercicio: Crear una matriz unidimensional de 24 elementos

Del mismo modo, puedes remodelar una matriz unidimensional en una matriz tridimensional (3-D) utilizando reshape() . Por ejemplo, si tienes una matriz unidimens.

Ejemplo

    import numpy as np

matriz = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

import numpy as np

# Crear una matriz unidimensional de 24 elementos
arr = np.arange(24)

# Reformar en una matriz 3-D
# Reformar en una matriz 3-D de 2x3x4
reshaped_arr = arr.reshape(2, 3, 4)
print(reshaped_arr)
  
Abrir en editor

Ejercicio: Usar print()

Puedes utilizar -1 en una dimensión al usar reshape() para indicar que deseas que NumPy calcule automáticamente el tamaño de esa dimensión e.

Ejemplo

    import numpy as np

# Crear una matriz unidimensional de 24 elementos
arr = np.arange(24)

# NumPy calculará automáticam
# NumPy calculará automáticamente el tamaño de la última dimensión
reshaped_arr = arr.reshape(2, 3, -1)
print(reshaped_arr)
  
Abrir en editor

Ejercicio: Crear una matriz unidimensional de 12 elementos (2)

Para convertir una matriz de cualquier dimensión en una matriz unidimensional, puedes utilizar la función ravel() o flatten() en NumPy. Amba.

Ejemplo

    from sklearn import metrics
print(metrics.confusion_matrix([1,0,1],[1,0,0]))
  
Abrir en editor

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.