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)
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)
¿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)
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)
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)
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)
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]))
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.