Curso de inteligencia artificial

Introducción al álgebra lineal con Python

Capítulo 2: Introducción a los vectores y matrices con Python y Numpy

El Álgebra Lineal es una rama de las matemáticas que estudia conceptos como los vectores y las matrices entre otras cosas.
Es una herramienta fundamental en muchos campos, como la física, la estadística, la informática, la economía y la ingeniería.
En este capítulo, voy a explicar el tema de los vectores y las matrices utilizando el lenguaje de programación Python. Con el fin de que tengáis un enfoque practico a toda la teoría dada.

¿Qué es NumPy?

NumPy es una biblioteca de código abierto en lenguaje Python que se utiliza principalmente para la programación científica, la ingeniería y las matemáticas.
NumPy ofrece un objeto de matriz multidimensional de alto rendimiento y herramientas para trabajar con estas matrices. Es el paquete fundamental para la computación científica con Python. Por supuesto, también para el desarrollo de inteligencia artificial.

Instalación de NumPy

Instalar NumPy es de lo más sencillo. Tan solo tienes que poner en la consola lo siguiente:

pip install numpy

Importar NumPy

La importación de la biblioteca NumPy también es muy fácil.

import numpy

En casi todo el código que veas donde se utiliza Numpy, verás esta importación abreviada como np. De modo, que en los siguientes ejemplo, lo utilizaremos con dicho alias:

import numpy as np

¿Qué son los vectores?

En el contexto del Álgebra Lineal, un vector puede ser representado como una lista ordenada de números.
Cada número en la lista se llama componente del vector o elemento y corresponde a una dimensión o eje específico en el espacio.
Esta definición no queda muy clara para quién empieza con las matemáticas, por lo tanto, hay que llevarla a la práctica con Python para poder materializarla.

En Python, es posible representar un vector utilizando listas o arrays de la librería NumPy.

Los arrays de NumPy son objetos parecidos a las listas de Python.

¿Por qué utilizar arrays de NumPy en lugar de listas Python?

La ventaja de usar arrays de NumPy en lugar de listas Python para vectores, es que el procesamiento de los arrays se realiza mucho más rápido.
Esto es posible porque los arrays de NumPy son muy eficientes debido a su forma compacta de almacenamiento y a la forma en que se accede a los datos.
Con conjuntos de datos pequeños, tampoco notaríamos demasiado, pero, ¿y si manejamos miles o millones de ellos? Ahí ya cambia mucho el asunto.

¿Cuáles son las posibilidades de uso de los arrays de NumPy?

Si no sabes mucho de matemáticas, puedes omitir esta lista que te pongo a continuación, ya que algunas de las cosas, quizás no les encuentres el significado y no quiero que este sea un curso aburrido para nadie. Con el tiempo irás aprendiendo, no te preocupes si algo te cuesta un poco más, es solo práctica y estudio.

Los arrays de NumPy pueden ser utilizados para una gran variedad de propósitos. Aquí tienes algunos de ellos:

  • Facilitan el desarrollo de aplicaciones de aprendizaje automático, como el análisis de componentes principales, la regresión lineal y otras técnicas utilizadas en el campo.
  • Proporcionan una amplia gama de funciones estadísticas y avanzadas para realizar cálculos como promedios, desviaciones estándar y otros indicadores relevantes.
  • Posibilitan la realización de operaciones matemáticas de manera ágil y eficiente, incluyendo sumas, restas, multiplicaciones y muchas otras.
  • Ofrecen una forma sencilla de indexar y seleccionar datos, lo que resulta muy útil para acceder y manipular información específica dentro de los arrays.
  • Permiten generar datos aleatorios para realizar pruebas y experimentos, facilitando así el análisis de escenarios diversos.

El aspecto de un vector en una lista de Python, es este:

# Definición de un vector utilizando una lista
vector1 = [1, 2, 3]

Ves, no tiene ningún misterio, es una lista normal y corriente.

Ahora, vamos a utilizar la estructura mejorada para este propósito, la de array de NumPy:

import numpy as np

# Definición de un vector utilizando un array
vector2 = np.array([1, 2, 3])

print(vector2)
[1 2 3]

Este es un vector fila y tiene las siguientes características:

  • Cantidad de elementos: 3 elementos.
  • Cantidad de filas: 1 fila.
  • Cantidad de columnas: 3 columnas.

También tenemos los vectores columna:

vector3 = np.array([[1], [2], [3]])

print(vector3)
[[1]
 [2]
 [3]]

¿Qué son las matrices?

Una matriz es una estructura que contiene elementos organizados en filas y columnas. Puedes pensar en ella como una tabla o una cuadrícula. Puesto que pueden tomar múltiples tamaños, se suele denominar al tamaño de las matrices con 2x2, 3x3, 2x3...

Veamos una matriz de 2x2:

matriz_2x2 = np.array([[1, 2], [3, 4]])
print(matriz_2x2)
[[1 2]
[3 4]]

Como puedes comprobar, la matriz de 2x2, es una cuadrado, 2 elementos x 2 elementos. El 2x2 se refiere a 2 filas por 2 columnas.

  • Cantidad de elementos: 4 elementos.
  • Cantidad de filas: 2 filas.
  • Cantidad de columnas: 2 columnas.

Ahora, una matriz de 3x3:

matriz_3x3 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matriz_3x3)
[[1 2 3]
[4 5 6]
[7 8 9]]
  • Cantidad de elementos: 9 elementos.
  • Cantidad de filas: 3 filas.
  • Cantidad de columnas: 3 columnas.

Y otro ejemplo más, una matriz de 2x3:

matriz_2x3 = np.array([[1, 2, 3], [4, 5, 6]])
print(matriz_2x3)
[[1 2 3]
 [4 5 6]]
  • Cantidad de elementos: 6 elementos.
  • Cantidad de filas: 2 filas.
  • Cantidad de columnas: 3 columnas.

Para el siguiente capítulo os voy a preparar una práctica con Matplotlib y estos arrays, para que veáis un uso todavía más práctico.


Comentarios

Si te quedan dudas sobre el temario, sobre inteligencia artificial, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.