Ejercicios de Álgebra y Estadística con NumPy
Ejercicios de Álgebra y Estadística con NumPy
• Producto matricial
• Determinante de A
• Matriz inversa de A
• Autovalores y autovectores de A
• Resuelve el sistema Ax = b donde b = [1, 1]
python
import numpy as np
print("A:\n", A)
print("B:\n", B)
# Producto matricial
producto = [Link](A, B)
print("Producto A x B:\n", producto)
# Determinante
det_A = [Link](A)
print("Determinante de A:", det_A)
# Matriz inversa
inv_A = [Link](A)
print("Inversa de A:\n", inv_A)
# Autovalores y autovectores
autovalores, autovectores = [Link](A)
print("Autovalores de A:", autovalores)
print("Autovectores de A:\n", autovectores)
# Resolver sistema Ax = b
x = [Link](A, b)
print("Solución Ax = b:", x)
Salida:
text
A:
[[1 2]
[3 4]]
B:
[[5 6]
[7 8]]
Producto A x B:
[[19 22]
[43 50]]
Determinante de A: -2.0000000000000004
Inversa de A:
[[-2. 1. ]
[ 1.5 -0.5]]
Autovalores de A: [-0.37228132 5.37228132]
Autovectores de A:
[[-0.82456484 -0.41597356]
[ 0.56576746 -0.90937671]]
Solución Ax = b: [-1. 1.]
Ejercicio: Dado el array datos = [12, 15, 18, 22, 25, 28, 32, 35, 40, 45]
calcula las siguientes medidas estadísticas:
import numpy as np
datos = [Link]([12, 15, 18, 22, 25, 28, 32, 35, 40, 45])
print("Datos:", datos)
# Medidas centrales
media = [Link](datos)
mediana = [Link](datos)
desviacion = [Link](datos)
print("Media:", media)
print("Mediana:", mediana)
print("Desviación estándar:", desviacion)
# Rango
minimo = [Link](datos)
maximo = [Link](datos)
print("Mínimo:", minimo)
print("Máximo:", maximo)
# Percentiles
p25, p50, p75 = [Link](datos, [25, 50, 75])
print("Percentil 25:", p25)
print("Percentil 50:", p50)
print("Percentil 75:", p75)
# Otras medidas
varianza = [Link](datos)
suma_acumulada = [Link](datos)
print("Varianza:", varianza)
print("Suma acumulada:", suma_acumulada)
Salida:
text
• Funciones trigonométricas
• Funciones de redondeo
• Funciones de comparación
• Funciones lógicas
python
import numpy as np
# Array de ejemplo
arr = [Link]([0, [Link]/4, [Link]/2, 3*[Link]/4, [Link]])
print("Array original:", arr)
# Funciones trigonométricas
seno = [Link](arr)
coseno = [Link](arr)
print("Seno:", [Link](seno, 3))
print("Coseno:", [Link](coseno, 3))
# Funciones de redondeo
arr_decimal = [Link]([1.234, 2.567, 3.891, 4.123])
print("\nArray decimal:", arr_decimal)
print("Round:", [Link](arr_decimal, 1))
print("Floor:", [Link](arr_decimal))
print("Ceil:", [Link](arr_decimal))
# Funciones de comparación
a = [Link]([1, 2, 3, 4, 5])
b = [Link]([5, 4, 3, 2, 1])
print("\nComparaciones:")
print("a == b:", a == b)
print("a > b:", a > b)
print("a < b:", a < b)
# Funciones lógicas
print("\nOperaciones lógicas:")
print("AND:", np.logical_and(a > 2, a < 5))
print("OR:", np.logical_or(a < 2, a > 4))
print("NOT a > 3:", np.logical_not(a > 3))
Salida:
text
Comparaciones:
a == b: [False False True False False]
a > b: [False False False True True]
a < b: [ True True False False False]
Operaciones lógicas:
AND: [False False True True False]
OR: [ True False False False True]
NOT a > 3: [ True True True False False]
import numpy as np
# Broadcasting básico
arr_1d = [Link]([1, 2, 3, 4])
arr_2d = [Link]([[1, 2, 3, 4], [5, 6, 7, 8]])
# Uso de [Link]
arr = [Link]([10, 20, 30])
print("\nArray original:", [Link])
arr_col = arr[:, [Link]]
arr_fila = arr[[Link], :]
print("Como columna (3x1):\n", arr_col)
print("Como fila (1x3):\n", arr_fila)
# Broadcasting complejo
matriz = [Link]((3, 4))
vector = [Link]([1, 2, 3, 4])
resultado3 = matriz * vector
print("\nMatriz 3x4 * vector 1x4:\n", resultado3)
Salida:
text
Array 1D: [1 2 3 4]
Array 2D:
[[1 2 3 4]
[5 6 7 8]]
2D + 1D:
[[ 2 4 6 8]
[ 6 8 10 12]]
(3x1) + (1x3):
[[5 6 7]
[6 7 8]
[7 8 9]]
import numpy as np
# Detectar NaN
nan_mask = [Link](arr)
print("Posiciones con NaN:", nan_mask)
print("Cantidad de NaN:", [Link](nan_mask))
# Reemplazar NaN
arr_sin_nan = np.nan_to_num(arr, nan=0)
print("Reemplazar NaN por 0:", arr_sin_nan)
arr_promedio = [Link]()
arr_promedio[nan_mask] = [Link](arr)
print("Reemplazar NaN por promedio:", arr_promedio)
# Eliminar NaN
arr_limpio = arr[~nan_mask]
print("\nArray sin NaN:", arr_limpio)
# Con matrices 2D
matriz = [Link]([[1, 2, [Link]], [4, [Link], 6], [7, 8, 9]])
print("\nMatriz con NaN:\n", matriz)
Salida:
text
import numpy as np
import os
# Limpieza (opcional)
for archivo in archivos:
if [Link](archivo):
[Link](archivo)
Salida:
text
Array 1:
[[1 2 3]
[4 5 6]]
Array 2: [0 1 2 3 4 5 6 7 8 9]
Array 3:
[[0.5488135 0.71518937 0.60276338]
[0.54488318 0.4236548 0.64589411]
[0.43758721 0.891773 0.96366276]]
Tamaños de archivos:
[Link]: 132 bytes
[Link]: 468 bytes
[Link]: 20 bytes
[Link]: 22 bytes
Resumen de ejercicios cubiertos: