NumPy (Numerical Python) es una biblioteca para la computación científica en Python.
Se utiliza ampliamente en inteligencia artificial (IA).
Machine learning (ML) y ciencia de datos.
Capacidad para manejar grandes volúmenes de datos.
Numéricos de manera eficiente.
NumPy proporciona estructuras de datos potentes.
Arrays multidimensionales (ndarray)
Funciones matemáticas optimizadas.
Operaciones vectorizadas.
Características Principales de NumPy
Arrays Multidimensionales (ndarray)
Los arrays de NumPy son más eficientes.
Permiten realizar operaciones matemáticas.
Sobre conjuntos de datos de manera rápida.
Permite crear arrays de cualquier dimensión.
1D (vectores), 2D (matrices) y ND (tensores).
Operaciones Matemáticas y Algebraicas
Incluye funciones para realizar operaciones.
Sumas, productos, raíces cuadradas.
Funciones trigonométricas, etc.
Permite realizar cálculos sobre grandes volúmenes de datos.
Sin necesidad de escribir bucles.
Manejo Eficiente de Memoria
NumPy usa un almacenamiento contiguo en memoria.
Mejora la velocidad de acceso a los datos.
Reduce el uso de memoria.
En comparación con las listas de Python.
Funciones de Álgebra Lineal y Transformaciones
Soporta operaciones con matrices.
Multiplicación de matrices, inversión, determinantes.
Descomposición en valores singulares (SVD).
Álgebra lineal avanzada.
Generación de Números Aleatorios
La biblioteca numpy.random
permite generar datos aleatorios.
Útil para inicialización de pesos en redes neuronales.
Simulaciones de Monte Carlo.
Integración con Bibliotecas de IA y ML
Se usa en conjunto con otras librerías populares.
Pandas, TensorFlow, PyTorch y Scikit-learn
Dependen de su estructura eficiente de arrays.
Aplicaciones de NumPy en Inteligencia Artificial
Manipulación de Datos en Machine Learning
Los datasets se representan como matrices filas y columnas.
NumPy facilita el almacenamiento.
Procesamiento de datos en modelos de ML.
Ejemplo:
Normalización de datos, preprocesamiento de imágenes.
Transformación de características.
Operaciones con Tensores en Deep Learning
En aprendizaje profundo los modelos trabajan.
Con grandes volúmenes de datos.
Organizados en tensores.
Generalización de matrices a múltiples dimensiones.
Ejemplo:
NumPy se usa para manejar los datos de entrada.
Antes de pasarlos a una red neuronal.
En TensorFlow o PyTorch.
Reducción de Dimensionalidad y Álgebra Lineal
Se usa en técnicas como Análisis de Componentes Principales (PCA).
Factorización de matrices.
Extraer características de alto nivel.
Ejemplo:
Reducción de la dimensionalidad.
Problemas de reconocimiento facial.
Generación y Simulación de Datos
Experimentos de inteligencia artificial.
Requieren generación de datos aleatorios.
Simulaciones estadísticas.
Ejemplo:
Creación de conjuntos de datos sintéticos.
Pruebas de modelos de aprendizaje supervisado.
Ejemplo de Uso en NumPy
Crear y Manipular Arrays
import numpy as np
# Crear un array 1D
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# Crear un array 2D (matriz)
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
# Acceder a elementos
print(arr2[1, 2]) # Accede al elemento en la segunda fila y tercera columna
Operaciones Matemáticas en Arrays
# Operaciones elementales
arr = np.array([1, 2, 3, 4, 5])
print(arr * 2) # Multiplica cada elemento por 2
print(arr + 10) # Suma 10 a cada elemento
# Producto de matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = np.dot(A, B) # Multiplicación de matrices
print(C)
Generación de Números Aleatorios
# Generar números aleatorios con distribución normal
random_data = np.random.randn(5, 5)
print(random_data)
# Generar una matriz con valores aleatorios entre 0 y 1
random_matrix = np.random.rand(3, 3)
print(random_matrix)
Uso en Machine Learning (Normalización de Datos)
# Normalizar datos para mejorar la estabilidad de los modelos de ML
data = np.array([10, 20, 30, 40, 50])
normalized_data = (data – np.mean(data)) / np.std(data)
print(normalized_data)
Ventajas y Desventajas de NumPy
Ventajas
Eficiencia Computacional
Rápido y consume menos memoria que las listas de Python.
Soporte para Operaciones Avanzadas
Incluye álgebra lineal, estadísticas y transformaciones de datos.
Compatibilidad con Otras Bibliotecas de IA
Es la base de muchas herramientas de machine learning y deep learning.
Desventajas
No Maneja Datos Heterogéneos
A diferencia de Pandas, NumPy no es ideal para datos mixtos.
Curva de Aprendizaje
Algunas funciones pueden ser complejas de entender.
NumPy proporciona una estructura de datos eficiente.
Optimizada para el manejo de datos numéricos.
Capacidades avanzadas de manipulación de arrays y álgebra lineal.
Base sobre la cual se construyen muchas bibliotecas de IA.