12. Ejercicios prácticos con NumPy

Estos ejercicios te ayudan a afianzar los conceptos vistos a lo largo del tutorial de NumPy.

12.1 Operaciones básicas con arrays

Ejercicio 1: Crear un array con los números del 1 al 10 y calcular el array al cuadrado, la suma total y la media.

import numpy as np

arr = np.arange(1, 11)
print("Array:", arr)

# Array al cuadrado
print("Cuadrados:", arr ** 2)

# Suma total
print("Suma:", arr.sum())

# Media
print("Media:", arr.mean())

Salida:

Array: [ 1  2  3  4  5  6  7  8  9 10]
Cuadrados: [  1   4   9  16  25  36  49  64  81 100]
Suma: 55
Media: 5.5

12.2 Creación de matrices y manipulación

Ejercicio 2: Crear una matriz 3x3 con valores del 1 al 9 y realizar:

  • Transpuesta de la matriz.
  • Sumas por filas y por columnas.
  • Extraer la segunda columna.
mat = np.arange(1, 10).reshape(3, 3)
print("Matriz:\n", mat)

# Transpuesta
print("Transpuesta:\n", mat.T)

# Suma por filas (axis=1)
print("Suma por filas:", mat.sum(axis=1))

# Suma por columnas (axis=0)
print("Suma por columnas:", mat.sum(axis=0))

# Segunda columna
print("Segunda columna:", mat[:, 1])

Salida:

Matriz:
 [[1 2 3]
  [4 5 6]
  [7 8 9]]
Transpuesta:
 [[1 4 7]
  [2 5 8]
  [3 6 9]]
Suma por filas: [ 6 15 24]
Suma por columnas: [12 15 18]
Segunda columna: [2 5 8]

12.3 Mini proyecto: análisis estadístico

Simula un dataset de calificaciones de 30 estudiantes.

  1. Generar puntajes aleatorios (0 a 100).
  2. Calcular mínimo, máximo, media, mediana y desviación estándar.
  3. Clasificar entre “Aprobado” (≥60) y “Desaprobado” (<60).
  4. Contar cuántos aprobaron y cuántos desaprobaron.
np.random.seed(42)  # Reproducibilidad
notas = np.random.randint(0, 101, size=30)
print("Notas de los estudiantes:\n", notas)

print("Nota mínima:", notas.min())
print("Nota máxima:", notas.max())
print("Media:", notas.mean())
print("Mediana:", np.median(notas))
print("Desviación estándar:", notas.std())

clasificacion = np.where(notas >= 60, "Aprobado", "Desaprobado")
print("Clasificación:\n", clasificacion)

aprobados = np.sum(notas >= 60)
desaprobados = np.sum(notas < 60)

print("Cantidad de aprobados:", aprobados)
print("Cantidad de desaprobados:", desaprobados)

Ejemplo de salida:

Notas de los estudiantes:
 [51 92 14 71 60 20 82 86 74 74 87 99 23  2 21 52  1 87 29 37  1 63 59 20 32 75 57 21 88 48]
Nota mínima: 1
Nota máxima: 99
Media: 53.1
Mediana: 57.5
Desviación estándar: 28.29
Clasificación:
 ['Desaprobado' 'Aprobado' 'Desaprobado' 'Aprobado' 'Aprobado' ... ]
Cantidad de aprobados: 14
Cantidad de desaprobados: 16

Resumen

  • Practicaste operaciones básicas (suma, media, potencias).
  • Manipulaste matrices (transposición, slicing, sumas por ejes).
  • Implementaste un mini análisis estadístico simulando datos reales.

Nota: Con esto completás el tutorial práctico de NumPy, desde fundamentos hasta aplicaciones reales en ciencia de datos.