🐍 Python Educativo Interactivo

Tu guía completa para dominar Python: Desde cero hasta temas avanzados como broadcasting en GPU y Dask. ¡Aprende, practica y juega con código en vivo!

Bienvenido a Python Educativo

Esta plataforma interactiva cubre todo lo necesario para aprender Python: desde fundamentos hasta temas avanzados como NumPy, Pandas, broadcasting en entornos distribuidos y GPU. Incluye quizzes, ejecución de código en vivo con Brython (para basics) y ejemplos prácticos. Progreso:

Instala Python en python.org o usa editores online como Replit.

Historia y Evolución de Python

Python fue creado por Guido van Rossum en los Países Bajos a finales de los 80s. Lanzado en 1991, su nombre viene de "Monty Python's Flying Circus".

Evolución Clave
  • 1991: Python 0.9.0 con módulos básicos.
  • 2000: Python 2.0 con list comprehensions.
  • 2008: Python 3.0 rompe compatibilidad.
  • 2020: Fin de soporte para Python 2.
  • 2025: Python 3.12+ con +50% velocidad y patrones de coincidencia.

Comunidad activa via PSF. Más info.

Quiz: ¿Quién creó Python?

Guido van Rossum
Linus Torvalds
Bill Gates

Contenido Básico

Fundamentos para principiantes: variables, control de flujo, funciones.

Hola Mundo

Variables y Tipos

Control de Flujo

Quiz: Output de range(3)

0 1 2
1 2 3

Contenido Avanzado

POO, decoradores, generadores, manejo de excepciones.

POO

Decoradores

Quiz: ¿Qué es un decorador?

Función que modifica otra
Variable global

Tutorial Pandas

Pandas es esencial para datos tabulares. Instala con pip install pandas. Basado en docs 2.3.3 (2025).

Crear DataFrame

import pandas as pd
data = {'Nombre': ['Ana', 'Bob'], 'Edad': [25, 30]}
df = pd.DataFrame(data)
print(df)

Filtrar Datos

mayores = df[df['Edad'] > 25]
print(mayores)

Estadísticas

print(df.describe())

Explicación: DataFrames como Excel en Python. Más en Getting Started y User Guide.

Quiz: ¿Qué hace df.describe()?

Estadísticas descriptivas
Filtra datos

Bibliotecas Clave de Python en 2025

Categoría Biblioteca Descripción
Manipulación de DatosNumPyArrays y matemáticas eficientes.
Manipulación de DatosPandasAnálisis de datos tabulares.
VisualizaciónMatplotlibGráficos estáticos.
MLPyTorchDeep learning dinámico.
MLTensorFlowDeep learning con GPU.
WebDjangoFramework full-stack.
WebFastAPIAPIs asincrónicas.
NLPSpaCyProcesamiento de lenguaje.
ScrapingRequestsSolicitudes HTTP.

Ejemplos de Código

NumPy Media

import numpy as np
arr = np.array([1,2,3,4,5])
print(np.mean(arr))

Pandas Filtrar

import pandas as pd
data = {'Edad': [25,30]}
df = pd.DataFrame(data)
print(df[df['Edad'] > 25])

Tutorial Paso a Paso de NumPy

NumPy para arrays numéricos. Instala: pip install numpy.

Crear Arrays

import numpy as np
arr1 = np.array([1, 2, 3])
print(arr1)

Operaciones

suma = arr1 + 10
print(suma)

Estadísticas

media = np.mean(arr1)
print(media)

Explicación

Arrays multidimensionales, vectorización para eficiencia. Ejemplo práctico: Análisis de temperaturas.

Ejemplo Completo
temps = np.array([22.5, 24.0, 23.1])
print(np.mean(temps))

Más en Docs NumPy.

Quiz: ¿Qué hace np.mean?

Calcula media
Suma elementos

Broadcasting en NumPy

Broadcasting opera arrays de shapes diferentes expandiendo dims de 1.

Reglas

import numpy as np
a = np.array([1,2,3])
b = 2
print(a * b)  # [2 4 6]

Ejemplo 2D

c = np.ones((3,2))
d = np.array([5,10])
print(c * d)

Explicación: d se expande a (1,2) y luego a (3,2). Más en Docs.

Quiz: Shapes compatibles (3,2) y (2,)?

Sí, resultado (3,2)
No

Broadcasting Avanzado en NumPy

Aplicaciones complejas: dims superiores, np.newaxis, máscaras.

3D Broadcasting

import numpy as np
a = np.ones((3,2,1))
b = np.array([10,20])
print(a * b)

Con np.newaxis

c = np.array([1,2,3])
d = c[:, np.newaxis] + c
print(d)

Máscaras

e = np.array([[1,2,3],[4,5,6]])
mask = e > 3
f = np.where(mask, e*2, e/2)
print(f)

Explicación: np.newaxis agrega dims para expansión. Útil en ML para outer products. Pitfalls: Formas incompatibles lanzan ValueError.

Ejercicio

Calcula distancias euclidianas con broadcasting.

Quiz: ¿Qué hace np.newaxis?

Agrega dim de 1
Elimina dim

Broadcasting con Dask Arrays

Dask extiende NumPy para big data, con broadcasting lazy en chunks.

Setup

import dask.array as da
import numpy as np
a = da.from_array(np.arange(6).reshape(2,3), chunks=(1,3))
b = da.from_array(np.ones(3), chunks=3)
result = a + b
print(result.compute())

da.broadcast_to

x = da.from_array(np.array([1,2,3]), chunks=3)
y = da.broadcast_to(x, shape=(4,3), chunks=(1,3))
print(y.compute())

Explicación: Lazy evaluation, chunks para paralelismo. No copia datos. Más en Dask Docs.

Quiz: ¿Qué es lazy en Dask?

Computación diferida
Caché inmediato

Broadcasting en GPU con PyTorch

PyTorch acelera broadcasting en GPU para ML.

Setup

import torch
device = 'cuda' if torch.cuda.is_available() else 'cpu'
c = torch.ones((3,2)).to(device)
d = torch.tensor([5.,10.]).to(device)
result = c * d
print(result)

3D

e = torch.ones((2,3,4)).to(device)
f = torch.tensor([100.,200.,300.]).to(device)
result2 = e * f.unsqueeze(0)
print(result2.shape)

Explicación: Similar a NumPy, pero GPU acelera. Útil en batches. Más en PyTorch Docs.

Quiz: Device en PyTorch

'cuda' para GPU
'cpu' solo

Broadcasting con CuPy

CuPy: NumPy en GPU.

Simple

import cupy as cp
c = cp.ones((3,2))
d = cp.array([5.,10.])
result = c * d
print(result.get())

Multidimensional

e = cp.ones((2,3,4))
f = cp.array([100.,200.,300.])
result2 = e * f[:, cp.newaxis]
print(result2[0].get())

Explicación: broadcast_to como NumPy. Más en CuPy Docs.

Quiz: .get() en CuPy

Transfiere a CPU
Computa en GPU

Integración Dask-CuPy

Dask con CuPy para distributed GPU.

Crear Array

import dask.array as da
import cupy as cp
cupy_arr = cp.arange(100000).reshape(100,1000)
dask_arr = da.from_array(cupy_arr, chunks=(10,100), asarray=False)
print(dask_arr.shape)

Operación

result = (dask_arr + 1).sum().compute()
print(result)

Explicación: Chunks en GPU, lazy. Para multi-GPU, usa LocalCUDACluster. Más en Dask GPU Docs.

Quiz: asarray=False en Dask-CuPy

Preserva backend GPU
Convierte a NumPy

Importancia y Aplicaciones

Python domina en 2025: IA, data science.

Sección Interactiva

Editor Brython


Ejemplo Avanzado: Turtle

Quiz Final: ¿Broadcasting?

Expansión de arrays
Copia de datos