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.
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:
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:
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: