logo

numpy.meshgrid() a Python

El mòdul numpy de Python proporciona malla () funció per crear una quadrícula rectangular amb l'ajuda de les matrius 1-D donades que representen el Indexació de matrius o Indexació cartesiana . MATLAB inspira una mica la funció meshgrid(). A partir dels vectors de coordenades, la funció meshgrid() retorna les matrius de coordenades.

numpy.meshgrid()

A la figura anterior, l'eix x oscil·la entre -5 i 5, i l'eix y oscil·la entre -5 i 5. Per tant, hi ha un total de 121 punts marcats a la figura, cadascun amb la coordenada x i coordenada y. Per a qualsevol línia paral·lela a l'eix x, les coordenades x dels punts marcats són -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 i 5 respectivament. D'altra banda, per a qualsevol línia paral·lela a l'eix y, les coordenades y dels punts marcats de baix a dalt són -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 i 5 respectivament.

Sintaxi

 numpy.meshgrid(*xi, **kwargs) 

Paràmetres

x1, x2,…, xn : com a matriu

Aquest paràmetre defineix la matriu unidimensional, que representa les coordenades d'una quadrícula.

indexació: {'xy', 'ij'} (opcional)

Aquest és un argument opcional que defineix la indexació cartesiana 'xy' (per defecte) o matricial ('ij') de la sortida.

escàs: bool (opcional)

Aquest paràmetre també és opcional. Si necessitem una graella escassa per conservar la memòria, haurem d'establir aquest paràmetre a True. Per defecte, s'estableix en Fals.

còpia: bool (opcional)

L'objectiu d'aquest argument opcional és que retorni una còpia de la matriu original per conservar la memòria. Per defecte, s'estableix en Fals.

Si tots dos escassa i còpia els paràmetres s'estableixen en Fals, aleshores retornarà matrius no contigües. A més, més d'un element d'una matriu de difusió pot fer referència a una única ubicació de memòria. Si hem d'escriure a les matrius, primer hem de fer còpies.

Devolucions

X1, X2, ..., Xn

La longitud de coordenades del vector de coordenades es retorna des d'aquesta funció.

Exemple 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 

Sortida:

 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. ]]) 

En el codi anterior

  • Hem importat numpy amb el nom d'àlies np.
  • Hem creat dues variables, és a dir, na i nb, i hem assignat els valors 5 i 3, respectivament.
  • Hem creat dues matrius, és a dir, a i b utilitzant la funció linspace().
  • Després d'això, hem declarat les variables 'xa' i 'xb' i hem assignat el valor retornat de malla ()
  • Hem passat les matrius 'a' i 'b' a la funció
  • Finalment, hem intentat imprimir el valor de 'xa' i 'xb' .

A la sortida, s'han mostrat dues matrius que contenen la longitud de coordenades dels vectors de coordenades.

Exemple 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 

Sortida:

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

Exemple 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() 

Sortida:

numpy.meshgrid()

En el codi anterior

  • Hem importat numpy amb el nom d'àlies np.
  • Hem importat matplotlib.pyplot com a plt.
  • Hem creat dues matrius, és a dir, a i b utilitzant la funció np.arange().
  • Després d'això, hem declarat les variables 'xa' i 'xb' i hem assignat el valor retornat de malla ()
  • Hem passat les matrius 'a' i 'b' a la funció.
  • Després d'això, hem declarat una variable z i hem assignat el valor de retorn de la funció np.sine().
  • Finalment, vam intentar dibuixar línies de contorn i omplir contorns utilitzant el plt.contourf()

A la sortida, s'han traçat corbes de nivell.

Exemple 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() 

Sortida:

numpy.meshgrid()

Exemple 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() 

Sortida:

numpy.meshgrid()