¡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
NumPy es la base sobre la que se construyen muchas otras librerías de análisis de datos en Python, incluidas Pandas y Matplotlib.
Con NumPy, has aprendido a manejar arrays multidimensionales y realizar cálculos matemáticos y matriciales eficientes. Estos arrays son fundamentales porque Pandas y Matplotlib los utilizan bajo el capó para realizar muchas de sus operaciones.
Pandas para la Manipulación de Datos
Mientras que NumPy se especializa en operaciones numéricas y matriciales, Pandas es la herramienta que utilizarás para la manipulación de datos estructurados, como tablas y series temporales.
Pandas toma los arrays de NumPy y les da estructura en forma de DataFrames y Series, lo que facilita la limpieza, transformación y análisis de datos complejos.
Ejemplo de Conexión: Puedes usar NumPy para realizar cálculos en un conjunto de datos, luego importar esos resultados a un DataFrame de Pandas para un análisis más detallado.
Matplotlib para la Visualización de Datos
Matplotlib es la librería de referencia para la visualización de datos en Python. Te permitirá transformar tus datos en gráficos e imágenes que comunican claramente tus hallazgos.
Tanto NumPy como Pandas se integran perfectamente con Matplotlib, permitiéndote crear gráficos desde arrays de NumPy o directamente desde DataFrames de Pandas.
Ejemplo de Conexión: Después de procesar y analizar datos con NumPy y Pandas, puedes usar Matplotlib para crear gráficos que visualicen las tendencias, patrones y anomalías en los datos.
El Flujo de Trabajo Completo
Cargar y Manipular Datos: Utilizas Pandas para cargar y estructurar tus datos desde diversas fuentes (como CSVs, Excel, bases de datos).
Análisis Numérico y Cálculos: Usas NumPy para realizar cálculos intensivos, como operaciones matriciales y simulaciones.
Visualización de Resultados: Finalmente, Matplotlib te ayuda a visualizar los resultados de tus análisis, creando gráficos que pueden comunicarse efectivamente con tu audiencia.
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.
Operaciones Básicas con Arrays
Instrucción: Crea dos arrays de 1D con valores enteros y realiza las operaciones de suma, resta, multiplicación, y división entre ellos.
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)
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.
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)
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. 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!
Me gustaria decir que cuando se busca calcular la mediana de un conjunto de datos, estos deben estar ordenados.
Pero cuando usamos numpy para calcular todas las medidas de tendencia central siempre los ordena de manera implícita sin que nos percatemos.
Por eso, cuando realizamos np.median(datos) esta por debajo ordena los datos.
Que buen aporte Neicer! gracias.
Neicer, no tenía idea que Numpy ordenaba los datos implícitamente, con razón es una herramienta tan utilizada.
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:
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)
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.
Me encanto el resumen, lo más práctico y directo.
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
¿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.
¿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.
"""
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
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...
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)
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