Antonio Demarco Bonino
Me saqué las ganas de jugar un poco más con ele ejercicio 2 y realicé unos cambios. Para que el array sea random, ver los datos que se usan y para redondear el promedio:
¡Felicidades por llegar al final del primer módulo! Has aprendido a dominar NumPy, una herramienta fundamental para el análisis de datos. Este es un gran paso en tu camino para convertirte en un experto en ciencia de datos. Pero esto es solo el comienzo. En los próximos módulos, nos adentraremos en dos poderosas herramientas: Pandas y Matplotlib, que se integran de manera perfecta con NumPy para llevar tu análisis de datos al siguiente nivel.
Conexión entre NumPy, Pandas y Matplotlib
NumPy como Fundamento
Pandas para la Manipulación de Datos
Matplotlib para la Visualización de Datos
El Flujo de Trabajo Completo
Ejercicios Prácticos con NumPy
Vamos a consolidar lo que has aprendido con ejercicios exclusivos de NumPy, diseñados para reforzar tus habilidades y prepararte para las conexiones futuras con Pandas y Matplotlib.
Instrucción: Crea dos arrays de 1D con valores enteros y realiza las operaciones de suma, resta, multiplicación, y división entre ellos.
Código:
import numpy as np array1 = np.array([10, 20, 30, 40]) array2 = np.array([1, 2, 3, 4]) suma = array1 + array2 resta = array1 - array2 multiplicacion = array1 * array2 division = array1 / array2 print("Suma:", suma) print("Resta:", resta) print("Multiplicación:", multiplicacion) print("División:", division)
Instrucción: Dado un array de datos, calcula la media, mediana, varianza, y desviación estándar.
Código:
pythonCopiar código import numpy as np datos = np.array([23, 76, 35, 67, 89, 45, 68, 79, 35]) media = np.mean(datos) mediana = np.median(datos) varianza = np.var(datos) desviacion = np.std(datos) print("Media:", media) print("Mediana:", mediana) print("Varianza:", varianza) print("Desviación estándar:", desviacion)
Instrucción: Crea dos matrices de 2x2 y realiza las operaciones de suma, resta, multiplicación (producto matricial) y cálculo de la inversa de una de ellas.
Código:
import numpy as np matriz1 = np.array([[1, 2], [3, 4]]) matriz2 = np.array([[5, 6], [7, 8]]) suma_matrices = matriz1 + matriz2 resta_matrices = matriz1 - matriz2 producto_matrices = np.dot(matriz1, matriz2) inversa_matriz1 = np.linalg.inv(matriz1) print("Suma de matrices:\n", suma_matrices) print("Resta de matrices:\n", resta_matrices) print("Producto de matrices:\n", producto_matrices) print("Inversa de la matriz 1:\n", inversa_matriz1)
Instrucción: Resuelve el sistema de ecuaciones lineales dado por Ax=b, donde A es una matriz 2x2 y b es un vector de 2 elementos.
Ax=bAx = b
Código:
import numpy as np A = np.array([[2, 3], [1, 2]]) b = np.array([8, 5]) x = np.linalg.solve(A, b) print("Solución del sistema de ecuaciones:", x)
Instrucción: Genera un array de 1000 números aleatorios que sigan una distribución normal con media 0 y desviación estándar 1. Calcula la media y desviación estándar del array generado.
Código:
import numpy as np datos_simulados = np.random.normal(0, 1, 1000) media_simulada = np.mean(datos_simulados) desviacion_simulada = np.std(datos_simulados) print("Media de los datos simulados:", media_simulada) print("Desviación estándar de los datos simulados:", desviacion_simulada)
Con estos ejercicios, has consolidado tus conocimientos en NumPy y estás listo para explorar cómo esta poderosa herramienta se conecta con otras librerías esenciales en el análisis de datos. A medida que avances hacia los módulos de Pandas y Matplotlib, verás cómo NumPy se integra perfectamente para manipular y visualizar datos de manera eficiente.
Recuerda, NumPy es la base sobre la que construirás habilidades más avanzadas en análisis de datos. ¡Continúa explorando y practicando para convertirte en un experto en ciencia de datos!
Antonio Demarco Bonino
Me saqué las ganas de jugar un poco más con ele ejercicio 2 y realicé unos cambios. Para que el array sea random, ver los datos que se usan y para redondear el promedio:
Henry Mauricio Cepeda Chacon
OJo: en multiplicacion de matrices: la operacion valida es utilizando el metodo "dot" y no utilizando el operador "*".
A continuación les comparto el script.
exam_arrayA = np.array([[-5,3],[4,7]])
exam_arrayB = np.array([[9,0],[2,-5]])
print("A",exam_arrayA)
print()
print("B",exam_arrayB)
print()
print("A-B",exam_arrayA-exam_arrayB)
print()
print("A*B",exam_arrayA*exam_arrayB)
print()
multi_AB = np.dot(exam_arrayA, exam_arrayB)
print("AxB",multi_AB)
Juan Felipe Benavides
el operador para multiplicar matrices es el @, aunque también podemos usar métodos como .dot(), .matmul() y .inner(), sin embargo existen diferencias sutiles en estos métodos.
Juan David Lozada Calderon
Me encanto el resumen, lo más práctico y directo.
Juan José Silva Márquez
la verdad este tema me abrió mucho la mente , desde la universidad , hace unos 9 años quizás no usaba esto , espero poder realizar optimizaciones en un programa de mantenimiento para hacer paradas de maquinas
Jhon Alexander Mosquera Vanegas
Los cinco ejercicios con que cierra el módulo parecen simples, pero cumplen una función: Pandas y Matplotlib usan arrays de NumPy bajo el capó, de modo que lo que se practica aquí se vuelve a usar después. La descripción lo resume en un flujo en el que Pandas carga y estructura los datos, NumPy hace los cálculos intensivos y Matplotlib muestra los resultados. De ahí que valga la pena rehacer cada ejercicio con datos propios, por ejemplo con una serie de indicadores de la región, y comprobar a mano lo que devuelven la media o la inversa antes de pasar a los módulos de tablas y gráficos.
Verónica Jiménez Ramírez
¿Cómo se conectan los arrays con Matplotlib?
Matplotlib está diseñado para hablar el mismo idioma que NumPy de forma nativa. Cuando le pasas una lista de datos a Matplotlib para dibujar un gráfico, internamente la convierte en un array de NumPy para procesarla más rápido.
Imagina que tienes un array con las temperaturas de todo un año y otro con los días. Al usar funciones como plt.plot(dias, temperaturas), Matplotlib toma esos vectores numéricos y mapea cada coordenada en un plano cartesiano casi instantáneamente. Esta conexión directa significa que puedes aplicar operaciones matemáticas complejas a tus arrays (como suavizar una curva de ventas o calcular una línea de tendencia con álgebra lineal) e inmediatamente inyectar ese resultado en un gráfico sin tener que transformar los datos a otros formatos. Es un puente directo entre el cálculo puro y la representación visual.
Jhon Freyman Ramírez Cortés
¿Dónde encaja este flujo en proyectos reales?
Este flujo de trabajo es el estándar de oro en la industria y funciona como una línea de ensamblaje de una fábrica de datos.
Primero, usas Pandas como el equipo de recepción: extraes datos de bases de datos SQL, archivos CSV o APIs, limpias los valores nulos y organizas la información. Luego, entra NumPy como el equipo de ingeniería: toma las columnas numéricas pesadas y aplica transformaciones matemáticas, cálculos estadísticos o algoritmos de machine learning a una velocidad vertiginosa. Finalmente, Matplotlib actúa como el equipo de marketing: toma esos resultados abstractos y los convierte en gráficos de barras, diagramas de dispersión o mapas de calor que cualquier gerente o cliente puede entender de un vistazo. En cualquier proyecto profesional, desde predecir el clima hasta analizar el mercado de valores, seguirás este ciclo exacto de extracción, procesamiento y comunicación.
Cristian Alexander Vallejos De la rosa
"""
Clase 11 - Conexión de NumPy con Pandas y Matplotlib para Análisis de Datos
Ejercicios NumPy
"""
import numpy as np
# (1) Operaciones Básicas con Arrays
# Instrucción
# Crea dos arrays de 1D con valores enteros.
a = np.array([1, 3, 5, 7, 9])
b = np.array([2, 4, 6, 8, 10])
# realiza las operaciones de suma, resta, multiplicación, y división entre ellos
sum = a + b
res = a - b
mul = a * b
div = a / b
print("### (1) ###")
print("Array a:", a) # Array a: [1 3 5 7 9]
print("Array b:", b) # Array b: [ 2 4 6 8 10]
print("Suma:", sum) # Suma: [ 3 7 11 15 19]
print("Resta:", res) # Resta: [-1 -1 -1 -1 -1]
print("Multiplicación", mul) # Multiplicación [ 2 12 30 56 90]
print("Division:", div) # Division: [0.5 0.75 0.833 0.875 0.9]
# (2) Cálculos Estadísticos en Arrays
# Instrucción: Dado un array de datos, calcula la media, mediana, varianza, y desviación estándar.
media = np.mean(a)
mediana = np.median(a)
varianza = np.var(a)
desviacion_e = np.std(a)
print("### (2) ###")
print("Array a:", a) # Array a: [1 3 5 7 9]
print("Mediana / Promedio:", media) # Mediana / Promedio: 5.0
print("Mediana:", mediana) # Mediana: 5.0
print("Varianza", varianza) # Varianza 8.0
print("Desviación estandar:", desviacion_e) # Desviación estandar: 2.8284271247461903
# (3) Operaciones Matriciales
# Instrucción: Crea dos matrices de 2x2
matriz_a = np.array([[1, 3],[5, 7]])
matriz_b = np.array([[2, 4],[6, 8]])
print("Matriz a:\n", matriz_a)
# Matriz a:
# [[1 3]
# [5 7]]
print("Matriz b:\n", matriz_b)
# Matriz b:
# [[2 4]
# [6 8]]
# realiza las operaciones de suma, resta, multiplicación (producto matricial) y cálculo de la inversa de una de ellas.
sum_m = matriz_a + matriz_b
res_m = matriz_a - matriz_b
mul_m = np.dot(matriz_a, matriz_b)
inv_m_a = np.linalg.inv(matriz_a)
inv_m_b = np.linalg.inv(matriz_b)
print("Suma M:\n", sum_m)
# Suma M:
# [[ 3 7]
# [11 15]]
print("Resta M:\n", res_m)
# Resta M:
# [[-1 -1]
# [-1 -1]]
print("Multiplicación M:\n", mul_m)
# Multiplicación M:
# [[20 28]
# [52 76]]
print("Inverza M_a:\n", inv_m_a)
# Inverza M_a:
# [[-0.875 0.375]
# [ 0.625 -0.125]]
print("Inverza M_b:\n", inv_m_b)
# Inverza M_b:
# [[-1. 0.5 ]
# [ 0.75 -0.25]]
# (4) Resolución de un Sistema de Ecuaciones Lineales
# Instrucción: Resuelve el sistema de ecuaciones lineales dado por Ax=b, donde A es una matriz 2x2 y b es un vector de 2 elementos.
# linalg.solve: Resuelve una ecuación matricial lineal, o un sistema de ecuaciones escalares lineales.
A = np.array([[2, 4],[6, 8]])
b = np.array([1, 3])
x = np.linalg.solve(A,b)
print("Solución ecuación lineal Ax=b:", x)
# Solución ecuación lineal Ax=b: [0.5 0. ]
# (5) Simulación de Datos
# Instrucción: Genera un array de 1000 números aleatorios que sigan una distribución normal con media 0 y desviación estándar 1.
# random.normal(loc=0.0, scale=1.0, size=None)
# loc = Media ("centro") de la distribución
# scale = Desviación estándar (dispersión o "ancho") de la distribución
# size = Forma de salida
datos_s = np.random.normal(0, 1, 1000)
print("Datos simulados:\n", datos_s)
# Calcula la media y desviación estándar del array generado.
med_datos_s = np.mean(datos_s)
dev_s_datos_s = np.std(datos_s)
print("Media Datos_S:", med_datos_s) # Media Datos_S: -0.011027245405171138
print("Desviación estandar Datos_S:", dev_s_datos_s) # Desviación estandar Datos_S: 0.9927456612022676
Alexander Ramirez
Para nada en este módulo hemos aprendido a dominar numpy, a lo sumo aprendimos 5 o 6 funciones de las más de 100 funciones que tiene dicha librería, numpy es una librería que cuenta con muchisimas más funciones, se está quedando corto este curso, como el anterior...
LUIS FELIPE MORA LESMES
De acuerdo a lo validado comparto scrip:
exam_arrayA = np.array([[-7,3],[4,7]])
exam_arrayB = np.array([[9,0],[2,-7]])
print("A",exam_arrayA)
print()
print("B",exam_arrayB)
print()
print("A-B",exam_arrayA-exam_arrayB)
print()
print("A*B",exam_arrayA*exam_arrayB)
print()
multi_AB = np.dot(exam_arrayA, exam_arrayB)
print("AxB",multi_AB)
Josilu Rashel Poma Parisuaña
Comenze a jugar un poco con las funciones, para saber si se podia definir en algunas funciones, el uso de numpy lo hace mas sencillo sinceramente