logo

numpy.meshgrid() in Python

Il modulo Numpy di Python fornisce griglia a maglie() funzione per creare una griglia rettangolare con l'aiuto degli array 1-D forniti che rappresentano il Indicizzazione della matrice O Indicizzazione cartesiana . MATLAB ispira in qualche modo la funzione meshgrid(). Dai vettori delle coordinate, la funzione meshgrid() restituisce le matrici delle coordinate.

numpy.meshgrid()

Nella figura sopra, l'asse x va da -5 a 5, e l'asse y va da -5 a 5. Quindi, c'è un totale di 121 punti contrassegnati nella figura, ciascuno con la coordinata x e coordinata y. Per qualsiasi linea parallela all'asse x, le coordinate x dei punti contrassegnati sono rispettivamente -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 e 5. D'altra parte, per qualsiasi linea parallela all'asse y, le coordinate y dei punti contrassegnati dal basso verso l'alto sono -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 e 5 rispettivamente.

Sintassi

 numpy.meshgrid(*xi, **kwargs) 

Parametri

x1, x2,…, xn : tipo_array

algoritmo di Kruskals

Questo parametro definisce l'array unidimensionale, che rappresenta le coordinate di una griglia.

indicizzazione: {'xy', 'ij'}(facoltativo)

Questo è un argomento facoltativo che definisce l'indicizzazione cartesiana 'xy' (per impostazione predefinita) o matrice ('ij') dell'output.

sparse: bool(opzionale)

Anche questo parametro è facoltativo. Se abbiamo bisogno di una griglia sparsa per conservare la memoria, dobbiamo impostare questo parametro su True. Per impostazione predefinita, è impostato su False.

copia: bool (opzionale)

Lo scopo di questo argomento facoltativo è restituire una copia dell'array originale per conservare memoria. Per impostazione predefinita, è impostato su False.

Se entrambi scarso E copia parametri sono impostati su False, restituirà array non contigui. Inoltre, più di un elemento di un array broadcast può fare riferimento a una singola posizione di memoria. Se dobbiamo scrivere negli array, dobbiamo prima fare delle copie.

ritorna

X1, X2, ..., Xn

Da questa funzione viene restituita la lunghezza delle coordinate dal vettore delle coordinate.

Esempio 1:

 import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b) xa xb 

Produzione:

 array([[1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. , 1. , 1. , 1. , 1. ], [1.5, 1.5, 1.5, 1.5, 1.5], [2. , 2. , 2. , 2. , 2. ]]) 

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo creato due variabili, ovvero na e nb, e assegnato rispettivamente i valori 5 e 3.
  • Abbiamo creato due array, ovvero aeb utilizzando la funzione linspace().
  • Successivamente, abbiamo dichiarato le variabili 'xa' e 'xb' e assegnato il valore restituito di griglia a maglie()
  • Abbiamo passato entrambi gli array 'a' e 'b' nella funzione
  • Infine, abbiamo provato a stampare il valore di 'scià' E 'xb' .

Nell'output sono stati mostrati due array che contengono la lunghezza delle coordinate dai vettori delle coordinate.

cos'è svn checkout

Esempio 2:

 import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b, sparse=True) xa xb 

Produzione:

 array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]]) 

Esempio 3:

 import numpy as np import matplotlib.pyplot as plt a = np.arange(-10, 10, 0.1) b = np.arange(-10, 10, 0.1) xa, xb = np.meshgrid(a, b, sparse=True) z = np.sin(xa**2 + xb**2) / (xa**2 + xb**2) h = plt.contourf(a,b,z) plt.show() 

Produzione:

numpy.meshgrid()

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo importato matplotlib.pyplot come plt.
  • Abbiamo creato due array, ovvero aeb utilizzando la funzione np.arange().
  • Successivamente, abbiamo dichiarato le variabili 'xa' e 'xb' e assegnato il valore restituito di griglia a maglie()
  • Abbiamo passato entrambi gli array 'a' e 'b' nella funzione.
  • Successivamente, abbiamo dichiarato una variabile z e assegnato il valore restituito dalla funzione np.sine().
  • Infine, abbiamo provato a disegnare linee di contorno e contorni riempiti utilizzando il plt.contourf()

Nell'output sono state tracciate le curve di livello.

Esempio 4:

 import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) plt.contourf(xa, xb, random_data, cmap = 'jet') plt.colorbar() plt.show() 

Produzione:

numpy.meshgrid()

Esempio 5:

 import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) sine = (np.sin(xa**2 + xb**2))/(xa**2 + xb**2) plt.contourf(xa, xb, sine, cmap = 'jet') plt.colorbar() plt.show() 

Produzione:

numpy.meshgrid()