Ejemplo uso numpy
Aquí tienes un ejemplo de un problema que utiliza NumPy para resolverlo, combinando varias operaciones y métodos. En este caso, trabajaremos con un conjunto de datos que representa las calificaciones de estudiantes en diferentes asignaturas y realizaremos algunas operaciones de análisis de datos.
Problema: Análisis de Calificaciones de Estudiantes
Supongamos que tenemos un conjunto de datos que representa las calificaciones de 5 estudiantes en 4 asignaturas (Matemáticas, Ciencias, Historia, y Literatura). Queremos realizar las siguientes tareas:
- Calcular la media de las calificaciones para cada asignatura.
- Calcular la calificación promedio de cada estudiante.
- Identificar al estudiante con la calificación más alta en cada asignatura.
- Calcular la desviación estándar de las calificaciones por asignatura.
- Visualizar los resultados utilizando gráficos.
Paso 1: Importar las Bibliotecas Necesarias
import numpy as np
import matplotlib.pyplot as plt
Paso 2: Crear el Conjunto de Datos
# Calificaciones de 5 estudiantes en 4 asignaturas
calificaciones = np.array([[85, 90, 78, 92], # Estudiante 1
[88, 76, 90, 85], # Estudiante 2
[95, 89, 84, 91], # Estudiante 3
[70, 80, 75, 68], # Estudiante 4
[80, 85, 82, 86]]) # Estudiante 5
asignaturas = ['Matemáticas', 'Ciencias', 'Historia', 'Literatura']
Paso 3: Calcular la Media de las Calificaciones por Asignatura
media_asignaturas = np.mean(calificaciones, axis=0)
print("Media de calificaciones por asignatura:")
for asignatura, media in zip(asignaturas, media_asignaturas):
print(f"{asignatura}: {media:.2f}")
Paso 4: Calcular la Calificación Promedio de Cada Estudiante
media_estudiantes = np.mean(calificaciones, axis=1)
print("\nCalificación promedio de cada estudiante:")
for i, media in enumerate(media_estudiantes, start=1):
print(f"Estudiante {i}: {media:.2f}")
Paso 5: Identificar al Estudiante con la Calificación Más Alta en Cada Asignatura
indices_maximos = np.argmax(calificaciones, axis=0)
print("\nEstudiante con la calificación más alta en cada asignatura:")
for i, index in enumerate(indices_maximos):
print(f"{asignaturas[i]}: Estudiante {index + 1} con {calificaciones[index, i]}")
Paso 6: Calcular la Desviación Estándar de las Calificaciones por Asignatura
desviacion_estandar = np.std(calificaciones, axis=0)
print("\nDesviación estándar de calificaciones por asignatura:")
for asignatura, std in zip(asignaturas, desviacion_estandar):
print(f"{asignatura}: {std:.2f}")
Paso 7: Visualizar los Resultados
# Graficar las calificaciones de los estudiantes
plt.figure(figsize=(10, 6))
x = np.arange(len(asignaturas)) # las posiciones en el eje x
# Crear un gráfico de barras para cada estudiante
for i in range(calificaciones.shape[0]):
plt.bar(x + i * 0.15, calificaciones[i], width=0.15, label=f'Estudiante {i + 1}')
plt.xticks(x + 0.15, asignaturas)
plt.xlabel('Asignaturas')
plt.ylabel('Calificaciones')
plt.title('Calificaciones de Estudiantes por Asignatura')
plt.legend()
plt.tight_layout()
plt.show()
Resultados
Al ejecutar el código anterior, se generarán los siguientes resultados en la consola:
- Media de calificaciones por asignatura.
- Calificación promedio de cada estudiante.
- Estudiante con la calificación más alta en cada asignatura.
- Desviación estándar de calificaciones por asignatura.
Además, se mostrará un gráfico de barras que ilustra las calificaciones de cada estudiante en cada asignatura, permitiendo una comparación visual clara.