La funzione meshgrid() di Python
La funzione meshgrid() della libreria numpy di python mi permette di creare una griglia a partire da due vettori. In pratica, la funzione calcola il prodotto cartesiano di due vettori.
meshgrid(x,y)
Dove x e y sono i vettori che determinano rispettivamente il vettore delle colonne e delle righe della griglia.
La funzione genera in output due matrici con la stessa dimensione.
Un esempio pratico
Importo la libreria numpy
import numpy as np
Creo un vettore con quattro valori numerici
x = np.array([0, 1, 2, 3]);
Poi creo un vettore con due valori alfanumerici
y = np.array(['a', 'b']);
Voglio creare il prodotto cartesiano dei due vettori e registrare le coppie (x,y)
Per farlo uso la funzione meshgrid().
xx, yy = np.meshgrid(x, y)
La funzione genera in output due matrici di dimensione 2x3 che salvo nelle variabili xx e yy.
La matrice xx itera gli elementi del vettore x (ossia quattro) per tante righe quanti sono gli elementi del vettore y (ossia due).
>>> xx
array([[0, 1, 2, 3],
[0, 1, 2, 3]])
La matrice yy itera gli elementi del vettore y (due) per tante colonne quante sono gli elementi del vettore x (ossia quattro).
>>> yy
array([['a', 'a', 'a', 'a'],
['b', 'b', 'b', 'b']], dtype='<U1')
Per vedere il prodotto finale stampo la griglia
for y in range(0,4):
for x in range(0,2):
print(xx[x,y],yy[x,y])
Il risultato in output sono le coppie (x,y) del prodotto cartesiano dei due vettori.
0 a
0 b
1 a
1 b
2 a
2 b
3 a
3 b
E così via.