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.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Numpy

    I metodi e le funzioni