Funciones definidas a trozos con arrays de NumPy
Introducción
Hoy vamos a ver cómo crear funciones definidas a trozos que manejen arrays de NumPy. Seguro que todos conocéis este tipo de funciones, pero a la hora de crearlas en NumPy me encontré con un par de obstáculos en el camino que me gustaría compartir con vosotros.
Como ya sabéis, las funciones definidas a trozos son ubicuas en matemáticas y se utilizan cuando queremos ensamblar varias funciones en una sola. Vamos a ver cómo construirlas en Python utilizando la función numpy.piecewise
y vamos a revisar un par de conceptos sobre comparación de arrays e indexación avanzada utilizando valores booleanos. Esto último suena un poco a magia negra pero ya veréis cómo no es para tanto 😛
En esta entrada se ha usado python 2.7.3 y numpy 1.6.2.
Funciones definidas a trozos
La función de NumPy numpy.piecewise
acepta, como mínimo, tres argumentos:
- un array de valores en los que evaluar la función
x
, - una lista de arrays booleanos
condlist
que son los «trozos» en los que se divide la función, que deben tener la misma forma quex
, - y una lista de funciones
funclist
que se corresponden con cada uno de los trozos.