La función meshgrid

La función numpy.meshgrid devuelve una lista de matrices de coordenadas a partir de vectores de coordenadas.

Veamos un ejemplo práctico: supongamos que queremos definir un área de dos dimensiones formada por los puntos de coordenadas x = 0, 1 y 2, e y = 0, 1 y 2:

Área definida por las coordenadas x = [0, 1, 2], y = [0, 1, 2]

Como vemos en el diagrama anterior, estos conjuntos de coordenadas x e y definen 9 puntos cuyas coordenadas en el plano se muestran en verde en la figura. El objetivo es obtener dos arrays, cada uno de tamaño (3, 3) en los que se incluyan las coordenadas x e y (por separado) de los 9 puntos en cuestión. Esto es exactamente lo que hace la función numpy.meshgrid: acepta como entrada las coordenadas que definen el segmento del hiperplano (puede tratarse de dos dimensiones o de cualquier otro número de ellas) y devuelve arrays con las coordenadas de dichos puntos:

Función numpy.meshgrid. Ejemplo de uso

Como vemos, la función acepta dos vectores de coordenadas, coord_x y coor_y, y ha devuelto dos arrays, x e y, conteniendo el primero la coordenada x de los 9 puntos, y el segundo la coordenada y de los mismos.

Una vez obtenidos estos arrays, es posible evaluar una función sobre los puntos:

Función evaluada sobre los puntos obtenidos

Hagamos un ejemplo más real y mostremos gráficamente el resultado:

Función numpy.meshgrid. Ejemplo de uso

Hemos considerado como vector de coordenadas 1.000 puntos entre los valores -5 y 5, y a las matrices de coordenadas resultantes les hemos aplicado cierta función cuyo resultado se ha almacenado en la variable z. Como tanto x como y son arrays NumPy de tamaño (1.000, 1.000), z también es un array NumPy del mismo tamaño:

Función numpy.meshgrid. Tipo y tamaño del resultado.

A continuación, importamos la librería matplotlib.pyplot, y mostramos con la función imshow la variable z:

Función numpy.meshgrid. Representación gráfica del resultado