Comprender cómo representar datos con escalares, vectores, matrices y tensores es clave para preparar información en Machine Learning. Aquí verás, con ejemplos en Google Colab y NumPy, cómo pasar del dato simple a estructuras que alimentan modelos reales, además de visualizar con Matplotlib.
¿Cómo pasar de un escalar a un vector con NumPy?
Un escalar es un número único: precio, edad o metros cuadrados. Un vector es una lista ordenada de escalares que describe un objeto completo: por ejemplo, una casa con metros cuadrados, habitaciones y precio. En código, crear el vector producto A en NumPy se hace con un array.
Un vector se ve en NumPy como un array de una dimensión.
Sus atributos ndim, shape y size revelan estructura y tamaño.
Idea clave: el número de componentes del vector define el espacio geométrico donde “vive”. Dos componentes: plano 2D. Tres componentes: espacio 3D. En producción, los vectores pueden tener cientos o millones de dimensiones.
¿Qué significan ndim, shape y size?
ndim: cantidad de ejes del array. Un vector tiene 1.
shape: tupla con la forma. Para un vector con 2 elementos: (2,).
size: número total de elementos. Aquí: 2.
import numpy as np
producto_A = np.array([20.0,4.5])print(f"vector producto: {producto_A}")print(f"numero de ejes o dimensiones del producto: {producto_A.ndim}")print(f"forma del producto: {producto_A.shape}")print(f"numero total de elementos del producto: {producto_A.size}")
¿Cómo graficar un vector con Matplotlib?
Usa plt.quiver para dibujar una flecha desde el origen hasta los componentes x e y del vector. Etiqueta ejes para dar contexto: precio en x y calificación en y.
¿Cómo organizar conjuntos en matrices para machine learning?
Cuando los datos llegan en masa, pasamos de vectores a matrices: una colección de vectores apilados en filas y columnas. En ML seguimos una convención fundamental: filas son observaciones (usuarios, casas, pacientes) y columnas son características (edad, precio, altura). Por eso, el shape se lee como (observaciones, características), justo lo que esperan librerías como Scikit-learn.
Ejemplo Netflix: una matriz de calificaciones con usuarios en filas y películas en columnas.
ndim = 2: hay filas y columnas.
shape = (4, 4): 4 observaciones por 4 características.
Una imagen a color tiene alto, ancho y profundidad de color. Para esto usamos un tensor: generaliza la matriz a tres o más dimensiones. Si un vector es 1D y una matriz 2D en NumPy, un tensor es 3D o más. Son el lenguaje nativo del deep learning (Tensorflow, Pytorch).
Un píxel RGB combina tres canales: R (red), G (green) y B (blue), con valores de 0 a 255.
Ejemplo: tensor con forma que se interpreta como “número de matrices internas, filas y columnas”.
ndim = 3, shape con tres números y size como su multiplicación.
import numpy as np
import matplotlib.pyplot as plt
imagen_tensor = np.array([[[255,0,0],[0,255,0],[0,0,255]],[[125,100,40],[115,80,200],[30,60,90]],])print(f"ndim: {imagen_tensor.ndim}")print(f"shape: {imagen_tensor.shape}")print(f"size: {imagen_tensor.size}")plt.imshow(imagen_tensor)plt.title('imagen tensor')plt.axis('off')plt.show()
Te invito a comentar: comparte una matriz que crearías a partir de un problema real indicando qué representan sus filas y columnas, y si te animas, publica también la imagen que generes con tu tensor RGB