SciPy es un paquete científico más completo, que incluye interfases a librerías científicas muy conocidas como LAPACK, BLAS u ODR entre muchas otras.
Contiene módulos para optimización, álgebra lineal, integración, interpolación, funciones especiales, FFT, procesamiento de señales y de imagen, resolución de ODEs y otras tareas para la ciencia e ingeniería.
Proporciona algoritmos para optimización, integración, interpolación, problemas de valores propios, ecuaciones algebraicas, ecuaciones diferenciales, estadísticas y muchas otras clases de problemas.
Amplía NumPy proporcionando herramientas adicionales para el cálculo de matrices y proporciona estructuras de datos especializadas, como matrices dispersas y árboles k-dimensionales.
Para instalarlo existen varias formas, nosotros usaremos pip:
$ python -m pip install scipy $ pip show scipy
Estos comandos lo instalarán y verificarán la instalación.
Entramos al REPL de Python:
$ python
Importemos la librería ``scipy`` y veamos la ayuda:
>>> import scipy >>> help(scipy)
Si no da error, la istalación fue correcta.
Nota: Para las gráficas es necesario instalar la librería ``matplotlib``
La instalamos de la siguiente forma:
$ pip install matplotlib
Esta librería nos ayudará a graficar y es comúnmente usada con otras librerías como Numpy y, en este caso, SciPy.
Usos de SciPy
Esta librería es útil para:
1. Cálculos matemáticos y algebraicosCasos prácticos
- Ciencia de datos: Ajustar modelos estadísticos, optimizar parámetros, analizar datos.
- Machine Learning: Preprocesar datos, calcular métricas espaciales o implementar algoritmos numéricos.
- Simulaciones físicas: Resolver ecuaciones diferenciales para modelar sistemas dinámicos.
- Procesamiento de señales/imágenes: Filtrar datos, analizar audio o imágenes.
- Ingeniería: Diseñar sistemas de control, optimizar estructuras o analizar materiales.
Y es cuando terminas dandole la razón a tu profesor de matemáticas y cálculo de la Universidad. La matemática está presente en todos lados. Si creías que por ser programador no ibas a ver matemáticas el resto de tu vida, te equivocaste.
Ejemplo. Ajustar una curva a datos ruidosos.
ajuste.py
import numpy as np from scipy.optimize import curve_fit import matplotlib.pyplot as plt # Datos de ejemplo x = np.linspace(0, 10, 100) y = 3 * np.sin(2 * x) + np.random.normal(0, 0.5, 100) # Modelo a ajustar def modelo(x, a, b): return a * np.sin(b * x) # Ajuste de curva params, _ = curve_fit(modelo, x, y, p0=[2, 2]) # Graficar plt.scatter(x, y, label="Datos", alpha=0.5) plt.plot(x, modelo(x, *params), 'r-', label="Ajuste") plt.legend() plt.show()
Ejecutamos:
$ python ajuste.py
Obtendremos una gráfica:
Enlaces:
https://scipy.org/https://research.iac.es/sieinvens/python-course/scipy.html
https://www.netlib.org/lapack/
https://www.netlib.org/blas/
https://medium.com/@ms_somanna/guide-to-adding-noise-to-your-data-using-python-and-numpy-c8be815df524
https://powerhousedm.blogspot.com/2012/02/un-modelo-para-separar-la-senal-del.html
Comentarios
Publicar un comentario