Archivo de la categoría: Uncategorized

Pandas

Pandas es una biblioteca de código abierto para Python diseñada específicamente para la manipulación y el análisis de datos estructurados. Se basa en NumPy, utilizando sus arreglos ndarray como foundation, pero aporta estructuras de datos de nivel superior que facilitan el trabajo con tablas, series temporales y conjuntos de datos heterogéneos.

Estructuras de datos principales

  • Series: objeto unidimensional etiquetado capaz de almacenar cualquier tipo de dato (enteros, flotantes, cadenas, objetos Python). Cada elemento tiene un índice asociado que permite acceso y alineación eficiente.repositorio.
  • DataFrame: estructura bidimensional con filas y columnas, análoga a una hoja de cálculo o a una tabla SQL. Cada columna puede tener un tipo diferente y posee un nombre (etiqueta).
  • Panel (menos usado actualmente): extensión a tres dimensiones para datos que varían según dos ejes espaciales y uno temporal.eiposgrados

Funcionalidades clave para el nivel universitario

  1. Entrada/salida de datos – Pandas permite leer y escribir en numerosos formatos (CSV, Excel, JSON, SQL, HDF5, Parquet, etc.) con funciones como read_csv(), to_excel(), read_sql().
  2. Limpieza y preprocessing – Herramientas para detectar y tratar valores perdidos (isnull(), fillna(), dropna()), eliminar duplicados, cambiar tipos (astype()) y aplicar transformaciones vectorizadas.iddigitalschool
  3. Selección y filtrado – Indexado basado en etiquetas (loc), posición entera (iloc) y operaciones booleanas para extraer subconjuntos de filas o columnas según condiciones.repositorio.
  4. Agrupación y agregación – El método groupby() facilita la aplicación de funciones (suma, media, conteo, etc.) a particiones de datos definidas por uno o más criterios, análogo a la cláusula GROUP BY de SQL.
  5. Unión y combinación – Funciones merge(), join() y concat() permiten realizar joins internos, externos, izquierda-derecha y concatenar DataFrames a lo largo de ejes, útil para integrar fuentes heterogéneas.
  6. Manipulación de series temporales – Soporte para índices de tipo DatetimeIndex, reindexado, resampling (resample()) y ventanas móviles (rolling()), esencial en econometría y análisis de señales.
  7. Integración con el ecosistema científico – Los objetos Series y DataFrame se interoperan directamente con NumPy (df.values), SciPy (para estadísticas y pruebas) y scikit‑learn (alimentando estimadores con X = df.values).
  8. Visualización ligera – Métodos de trazado incorporados (df.plot()) basados en Matplotlib permiten generar rápidamente histogramas, diagramas de dispersión y series temporales para análisis exploratorio.

Ventajas respecto a enfoques tradicionales

  • Productividad: operaciones que requerirían bucles explícitos en Python puro se expresan en una o dos líneas gracias al broadcasting y a las funciones vectorizadas de Pandas.datacamp
  • Manejo eficiente de la memoria: los datos se almacenan en bloques contiguos homogéneos (gracias a NumPy) y se evita la sobrecarga de listas de objetos Python.eiposgrados
  • Flexibilidad: la combinación de indexing etiquetado y basado en posición permite pasar fácilmente de trabajo con datos estructurados a análisis de series temporales o datos panel.
  • Compatibilidad: al ser la biblioteca de facto para el análisis de datos en Python, se integra con prácticamente todas las herramientas del stack científico (Jupyter, Altair, Seaborn, Statsmodels, TensorFlow, PyTorch).

Aplicaciones típicas

  • Laboratorios de introducción a la ciencia de datos: carga de conjuntos de datos reales (por ejemplo, el Titanic, el Iris o datos de encuestas), limpieza, cálculo de estadísticas descriptivas y creación de visualizaciones básicas.
  • Cursos de estadística y econometría: manipulación de panel data, cálculo de regresiones mediante statsmodels después de preparar los datos con Pandas, y realización de pruebas de hipótesis sobre grupos (groupby().agg()).datademia+1
  • Proyectos de aprendizaje automático: preprocesado de características (escalado, codificación de variables categóricas con get_dummies()), separación en conjuntos de entrenamiento/prueba (train_test_split de scikit‑learn) y alimentación de modelos.joserzapata.
  • Análisis de series temporales en cursos de ingeniería o finanzas: resampling de datos de alta frecuencia, cálculo de medias móviles y modelado con ARIMA o Prophet después de preparar el índice temporal.
  • Trabajos finales de grado (TFG): integración de múltiples fuentes (archivos CSV, bases SQL, APIs REST) mediante read_csv(), read_sql() y json_normalize(), seguido de un pipeline de limpieza, agregación y exportación a formatos informativos (Excel, LaTeX tables).

Ejemplo básico de flujo de trabajo en un cuaderno de Jupyter

pythonimport pandas as pd
import numpy as np

# 1. Lectura de datos desde CSV
df = pd.read_csv('estudiantes.csv')          # columnas: nombre, edad, carrera, promedio

# 2. Exploración inicial
print(df.head())                             # primeras filas
print(df.describe())                         # estadísticas descriptivas
print(df.isnull().sum())                     # conteo de valores perdidos

# 3. Limpieza: eliminar filas con promedio faltante y rellenar edad media
df = df.dropna(subset=['promedio'])
df['edad'].fillna(df['edad'].median(), inplace=True)

# 4. Creación de una variable derivada
df['mayor_de_edad'] = np.where(df['edad'] >= 18, 'Sí', 'No')

# 5. Agrupación: promedio de notas por carrera
promedio_por_carrera = df.groupby('carrera')['promedio'].mean().reset_index()

# 6. Unión con otro dataset (por ejemplo, lista de becas)
becas = pd.read_csv('becas.csv')             # columnas: carrera, beca_disponible
df = df.merge(becas, on='carrera', how='left')

# 7. Exportación del resultado
df.to_csv('estudiantes_limpios.xlsx', index=False)
promedio_por_carrera.to_csv('promedio_carrera.csv', index=False)

Este fragmento ilustra cómo Pandas permite pasar de datos crudos a un conjunto limpio, enriquecido y listo para análisis estadístico o modelado, todo con un código legible y conciso.

En resumen, para un estudiante universitario Pandas constituye una herramienta esencial que combina facilidad de uso, potencia expresiva y estrecha integración con el ecosistema científico de Python. Su dominio facilita todo el ciclo de vida de los datos—desde la ingesta y limpieza hasta el análisis, visualización y preparación para algoritmos de aprendizaje automático—haciéndolo imprescindible en asignaturas de estadística, ciencia de datos, ingeniería, economía y cualquier disciplina que requiera tratamiento riguroso de información tabular o tempooral.

-> generado con IA

JSFiddle

Para probar tu código Html y CSS puedes hacerlo en

JSFiddle https://jsfiddle.net/

CodePen CodePen: Online Code Editor and Front End Web Developer Community

CSSDesk HTML5, CSS3, JS Demos, Creations and Experiments | CSSDeck

ChatGPT lo hacía, así que le he mandado hacer también a COPILOT el siguiente Prompt:

-> “Crea un código que muestre la hora. Hazlo utilizado solo Html, Css y JavaScript. Haz el código todo lo optimizado y simple posible. Haz que tenga un diseño sencillo, moderno y minimalista. El formato debe ser el de un reloj digital. Haz que el fondo del reloj digital sea de color naranja. Haz que el número del reloj digital sea en tamaño grande. Haz que en la parte superior derecha este escrito la palabra: UBUCEV”

y este ha sido el resultado para cortar y pegar …

UBUCEV

visto en Fernandez-Docencia_era_inteligencia_artificial_enfoques_prácticos_docentes.pdf

Matplotlib

Matplotlib es una biblioteca de visualización de datos para Python que permite crear gráficos estáticos, animados e interactivos en dos y tres dimensiones, con un alto grado de personalización y una estrecha integración con NumPy y Pandadas.

Arquitectura y modo de uso

  • Interfaz pyplot: el módulo matplotlib.pyplot proporciona un estilo de programación parecido a MATLAB, ocultando los detalles de bajo nivel y permitiendo generar figuras con pocas líneas de código.
  • API orientada a objetos: para un control más fino se pueden crear explícitamente objetos Figure y Axes mediante plt.subplots() y luego aplicar métodos como plot()scatter()bar() etc. sobre esos ejes.
  • Backends y renderizado: Matplotlib soporta varios backends (por ejemplo, TkQt, Cairo, SVG, PDF, Agg) que le permiten exportar a múltiples formatos de archivo y mostrar gráficos en entornos interactivos como Jupyter Notebooks.

Características principales

  • Tipos de gráficos 2D: líneas, barras, histogramas, diagramas de caja, violin-plots, áreas, polar y muchos más, todos accesibles mediante funciones de alto nivel.
  • Gráficos 3D: mediante el toolkit mpl_toolkits.mplot3d se pueden crear gráficos de superficie, malla, scatter 3D y voxels, lo que resulta útil en asignaturas de cálculo multivariable y modelado geomértico.
  • Personalización avanzada: colores, estilos de línea, marcadores, ancho de línea, transparencia (alpha), leyendas, anotaciones, texto matemático (mediante MathJax/LaTeX), y colormaps (secuenciales, divergentes, cualitativos) pueden ajustarse con gran precisión.
  • Interactividad y animaciones: el módulo matplotlib.animation permite crear animaciones mediante FuncAnimation, mientras que backends como %matplotlib notebook o %matplotlib widget ofrecen interactividad básica (zoom, pan) dentro de notebooks.
  • Exportación y publicación: los gráficos se pueden guardar en formatos raster (PNG, JPEG, TIFF) y vectoriales (PDF, SVG, EPS) con alta resolución, adecuados para inclusión en artículos, tesis y presentaciones.

Integración con el ecosistema científico

  • NumPy: los objetos ndarray se pasan directamente a las funciones de trazado; por ejemplo, plt.plot(x, y) funciona con arreglos NumPy sin conversión adicional.
  • PandasSeries y DataFrame tienen un método .plot() que delegan a Matplotlib, facilitando la visualización de datos tabulares y de series temporales.
  • Herramientas de estadística y ML: los gráficos generados con Matplotlib se usan habitualmente para ilustrar resultados de scikit‑learn, statsmodels o TensorBoard, y pueden combinarse con seaborn (que es una capa de alto nivel sobre Matplotlib) para estilos estadísticos predefinidos.

Uso típico

  • Laboratorios de introducción a la programación: los estudiantes aprenden a leer datos desde CSV, crear gráficos de líneas y de dispersión para visualizar tendencias y relaciones.
  • Asignaturas de cálculo y álgebra lineal: se grafican funciones, campos vectoriales y superficies 3D para comprender conceptos como gradientes, divergentes y superficies de nivel.
  • Estadística y probabilidad: histogramas, diagramas de caja y QQ‑plots se emplean para evaluar distribuciones y supuestos de normalidad.
  • Proyectos finales de grado (TFG): se generan figuras de calidad publicación para incluir en memorias y artículos, usando exportación a PDF o SVG y ajustes de fuentes y tamaños de figgura.
  • Visualización de datos en tiempo real: en cursos de sistemas embebidos o IoT se usan animaciones para mostrar señales adquiridas desde sensoores.

Flujo de trabajo básico

pythonimport numpy as np
import matplotlib.pyplot as plt

# 1. Generar datos de ejemplo (una señal senoidal con ruido)
t = np.linspace(0, 2*np.pi, 400)
y = np.sin(t) + 0.2*np.random.randn(t.size)

# 2. Crear figura y ejes (API orientada a objetos)
fig, ax = plt.subplots(figsize=(8, 4))
ax.plot(t, y, color='#1f77b4', linewidth=2, label='sen(t) + ruido')
ax.set_xlabel('Tiempo (s)')
ax.set_ylabel('Amplitud')
ax.set_title('Señal senoidal con ruido gaussiano')
ax.grid(True, linestyle='--', alpha=0.5)
ax.legend()

# 3. Guardar y mostrar
plt.tight_layout()
plt.savefig('senoidal.png', dpi=300)   # alta resolución para informe
plt.show()                            # o bien usar %matplotlib inline en Jupyter

Este fragmento ilustra la simplicidad de pasar de datos numéricos a una figura lista para incluir en un informe o presentación.

Ventajas respecto a otras herramientas de visualización

  • Madurez y estabilidad: lleva más de 15 años de desarrollo activo y es la referencia de facto en la comunidad científica de Python.
  • Flexibilidad: desde gráficos rápidos de exploración hasta figuras de publicación con control tipográfico exacto.
  • Costo cero y licencia permisiva: distribuida bajo una licencia similar a la de Python, permite su uso en proyectos académicos y comerciales sin restricciones.eii.uva
  • Amplia documentación y comunidad: tutoriales, ejemplos y respuestas en Stack Overflow abundan, y la documentación oficial incluye guías de introducción, uso avanzado y referencia de API.

En resumen, Matplotlib constituye una herramienta esencial para cualquier estudiante universitario que necesite explorar, analizar y presentar datos de forma visual. Su combinación de una interfaz sencilla (pyplot) y una API orientada a objetos potente permite abordar tanto tareas de visualización rápida como la generación de figuras de calidad profesional para trabajos de investigación, informes de laboratorio y tesis.

-> Generado con IA

Japón, ¿un país para viejos?

El programa “En Portada” de RTVE viajó hasta Japón para explorar la situación de los ancianos en el país más envejecido del mundo. Aquí están los datos más relevantes:

  1. Demografía:
    • Japón enfrenta un envejecimiento acelerado de su población. La esperanza de vida es alta, y la tasa de natalidad es baja.
    • Los ancianos representan una proporción significativa de la población total.
  2. Pensiones:
    • Muchos ancianos viven con pensiones muy bajas. Esto los lleva a trabajar hasta edades avanzadas para sobrevivir.
    • Algunos incluso recurren al delito para obtener comida.
  3. Cárceles:
    • Sorprendentemente, las cárceles japonesas albergan cada vez más presos mayores de 65 años.
    • Para algunos, la prisión se convierte en una solución porque allí tienen comida, techo y atención médica.
    • Las cárceles han tenido que adaptarse y funcionar como geriátricos.
  4. Vida en prisión:
    • Los ancianos en prisión enfrentan disciplina, horarios y trabajo obligatorio, incluso si padecen enfermedades.
    • Los sanos trabajan en naves dentro del recinto carcelario, mientras que los enfermos laboran en sus celdas.
    • A pesar de todo, la vida en prisión no es fácil para ellos.

Japón se enfrenta a desafíos demográficos y económicos relacionados con su población envejecida. Los ancianos luchan por sobrevivir con pensiones insuficientes, y algunos terminan en prisión buscando una solución.1