Continuando con nuestro estudio sobre las estructuras en Python, las matrices, que asemejan tablas bidimensionales, son herramientas fundamentales para el análisis y la manipulación de datos en Python.

Si bien las listas anidadas ofrecen una forma básica de crear matrices, NumPy emerge como la opción poderosa y eficiente. Acompáñame y sigamos descubriendo estas útiles estructuras, y si te perdiste el anterior post te dejo el enlace aquí.

Matrices en Python: Una explicación detallada

Un matriz es una estructura de datos bidimensional que se asemeja a una tabla rectangular. Está formada por filas y columnas, y cada elemento de la matriz se encuentra en una posición específica determinada por su índice de fila y columna.

En Python, existen dos formas principales de crear matrices:

  1. Listas de listas: Se puede crear una matriz utilizando listas anidadas, donde cada lista interna representa una fila de la matriz, en este tipo no ahondaremos mucho, ya que lo vimos en un anterior post, sin embargo te dejo un ejemplo:
matriz = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
  1. Arrays NumPy: La biblioteca NumPy ofrece una forma más eficiente de trabajar con matrices. Los arrays NumPy son colecciones de elementos homogéneos almacenados en memoria contigua, lo que permite un rendimiento superior al de las listas anidadas para operaciones matemáticas y científicas.
import numpy as np

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

# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]

¿Por qué utilizar arrays NumPy?

Si bien ambas formas permiten crear matrices, los arrays NumPy presentan ventajas significativas:

  • Rendimiento: Las operaciones matemáticas y científicas realizadas sobre arrays NumPy ya que son mucho más eficientes que las realizadas sobre listas anidadas. Esto se debe a la forma en que se almacenan los datos en memoria.
  • Funcionalidad: NumPy ofrece una amplia gama de funciones matemáticas y de manipulación de matrices que facilitan el trabajo con datos multidimensionales.
  • Escalabilidad: Los arrays NumPy pueden escalar a tamaños mucho mayores que las listas anidadas sin perder eficiencia.

Ya que las matrices con NumPy son estructuras matemáticas, además de poderse aplicar las mismas transformaciones que vimos con las listas, podemos aplicar la transposición, que consiste en una operación que intercambia las filas y las columnas. En otras palabras, los elementos de cada fila pasan a formar las columnas de la matriz transpuesta, y viceversa. Esta operación es muy importante en ciencia de datos e inteligencia artificial, ya que nos permite trabajar con derivadas, pero veamos algunos de sus usos:

  • Adaptar la matriz a la entrada de otra función o algoritmo que espera los datos en un formato específico.
  • Cambiar la orientación de los datos para su visualización o análisis.
  • Realizar cálculos matemáticos específicos que requieren la matriz en un formato transpuesto.
import numpy as np

# Crea una matriz de ejemplo
matriz = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Imprime la matriz original
print("Matriz original:\n", matriz)

# Transpone la matriz usando la función transpose()
matriz_transpuesta = matriz.transpose()

# Imprime la matriz transpuesta
print("\nMatriz transpuesta:\n", matriz_transpuesta)
Matriz original:
 [[1 2 3]
 [4 5 6]
 [7 8 9]]

Matriz transpuesta:
 [[1 4 7]
 [2 5 8]
 [3 6 9]]

Una de las mayores ventajas de usar matrices con NumPy la obtenemos en la Multiplicación de matrices, aquí es donde NumPy destaca. La multiplicación de matrices puede ser computacionalmente costosa. Los métodos tradicionales tienen una complejidad temporal de O(n^3) para matrices de tamaño n x n. Sin embargo, NumPy utiliza algoritmos optimizados, como el algoritmo de Strassen, que reduce significativamente este costo. Si no te queda muy claro lo del calculo de complejidad puedes ampliar en este post.

Espero hayas comprendido los temas que vimos aquí, si tienes alguna duda o comentario compártelo para aprender juntos y no olvides suscribirte para estar al pendiente de los próximos post, se vienen los Vectores, así que hasta la próxima!


¡Conviértete en un experto tecnológico! 🚀 Suscríbete a nuestro newsletter y recibe las últimas noticias, análisis y tendencias directamente en tu bandeja de entrada. No te pierdas las actualizaciones que harán que tu experiencia tecnológica sea aún más emocionante. ¡Únete a nuestra comunidad hoy! 📧✨