Contenido del curso

NumPy

Pandas

Álgebra lineal con NumPy y linalg

Resumen

El álgebra lineal con NumPy te permite resolver operaciones entre matrices de forma optimizada, algo clave cuando trabajas con grandes volúmenes de datos en ciencia de datos o machine learning. Aquí verás cómo sumar, restar, multiplicar matrices, calcular determinantes, inversas y resolver sistemas de ecuaciones lineales en Python.

¿Cómo sumar y restar matrices con NumPy?

La suma y la resta entre arrays en NumPy funcionan elemento por elemento, respetando la posición de cada valor dentro de la matriz.

Primero defines dos matrices con np.array(). Por ejemplo, una matriz A con los valores [[1, 2], [3, 4]] y una matriz B con [[5, 6], [7, 8]]. Cuando ejecutas sum = A + B, NumPy toma la primera posición de A y la suma con la primera posición de B: 1 más 5, 2 más 6, y así sucesivamente.

¿Cómo se restan matrices en NumPy? Solo cambia el signo: A - B. NumPy resta cada elemento en la misma posición y devuelve un nuevo array con el mismo tamaño.

Esta lógica posicional es la base de casi todas las operaciones vectorizadas de la librería.

¿Cuál es la diferencia entre multiplicación elemento a elemento y producto matricial?

Aquí viene un punto que confunde a muchos: no es lo mismo multiplicar dos arrays con * que hacer el producto matricial real.

Para obtener la multiplicación matricial, usas la función np.dot(A, B). Esta función aplica las reglas formales del álgebra lineal, no una multiplicación posición por posición. Es la operación que necesitas cuando trabajas con transformaciones lineales, redes neuronales o regresiones.

  • A + B: suma elemento a elemento.
  • A - B: resta elemento a elemento.
  • np.dot(A, B): producto matricial real.

Una matriz también puede multiplicarse por un escalar, y existen propiedades como la asociativa o la distributiva que vale la pena revisar para entender cuándo aplicar cada una.

¿Cómo calcular la determinante y la inversa de una matriz?

NumPy incluye un submódulo llamado linalg que agrupa las herramientas específicas de álgebra lineal.

Determinante de una matriz

Para obtener la determinante de la matriz A, llamas np.linalg.det(A). El resultado es un número escalar que resume propiedades de la matriz, como si es invertible o no.

Inversa de una matriz

La inversa se calcula con np.linalg.inv(A). A diferencia de la determinante, aquí el resultado no es un número sino un nuevo array del mismo tamaño que A. Esa matriz inversa es la que usas, por ejemplo, para despejar incógnitas en un sistema de ecuaciones.

¿Qué hace np.linalg en NumPy? Es el módulo que reúne funciones de álgebra lineal: determinantes, inversas, valores propios y solución de sistemas. Lo llamas con np.linalg.<función>.

¿Cómo resolver un sistema de ecuaciones lineales con NumPy?

Uno de los usos más potentes del módulo linalg es resolver ecuaciones del tipo A · X = B, donde A es la matriz de coeficientes, X el vector de incógnitas y B el vector de resultados.

El flujo es directo:

  1. Defines la matriz A con tus coeficientes.
  2. Creas el array B, por ejemplo np.array([9, 11]).
  3. Llamas X = np.linalg.solve(A, B).

NumPy devuelve el vector X con los valores que satisfacen el sistema. No necesitas calcular la inversa a mano ni despejar variable por variable, la función lo hace por ti de forma optimizada.

¿Cuándo uso np.linalg.solve en lugar de la inversa? Cuando solo necesitas resolver el sistema. solve es más estable numéricamente y más rápido que multiplicar por la inversa calculada con inv.

Conceptos clave de álgebra lineal aplicados en NumPy

A lo largo del recorrido aparecen varias ideas que conviene tener claras para llevarlas a casos reales con datos.

  • Array: estructura base de NumPy para representar vectores y matrices.
  • Operaciones elemento a elemento: suma y resta posicional con + y -.
  • Producto matricial: multiplicación formal con np.dot().
  • Determinante: valor escalar calculado con np.linalg.det() que indica si la matriz tiene inversa.
  • Matriz inversa: nueva matriz obtenida con np.linalg.inv(), útil para despejar incógnitas.
  • Sistema de ecuaciones lineales: se resuelve con np.linalg.solve(A, B) siguiendo la forma A·X=B.

Quedan muchas más operaciones por explorar dentro de linalg, como valores y vectores propios, descomposiciones o normas de matrices. ¿Cuáles has aplicado tú en proyectos con datos? Cuéntalo en los comentarios.