Python modul numpy pruža mrežasta mreža() funkcija za stvaranje pravokutne mreže uz pomoć danih 1-D nizova koji predstavljaju Indeksiranje matrice ili Kartezijansko indeksiranje . MATLAB donekle inspirira funkciju meshgrid(). Iz koordinatnih vektora funkcija meshgrid() vraća koordinatne matrice.
Na gornjoj slici, x-os je u rasponu od -5 do 5, a y-os je u rasponu od -5 do 5. Dakle, na slici je označena ukupno 121 točka, svaka s x-koordinatom i y-koordinata. Za bilo koju liniju paralelnu s x-osi, x-koordinate označenih točaka su -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 i 5 redom. S druge strane, za bilo koju liniju paralelnu s y-osi, y-koordinate označenih točaka odozdo prema gore su -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4, odnosno 5.
Sintaksa
numpy.meshgrid(*xi, **kwargs)
Parametri
x1, x2,…, xn : sličan_nizu
Ovaj parametar definira 1-dimenzionalni niz koji predstavlja koordinate mreže.
indeksiranje: {'xy', 'ij'}(izborno)
Ovo je izborni argument koji definira kartezijansko 'xy' (prema zadanim postavkama) ili matrično ('ij') indeksiranje izlaza.
rijedak: bool (izborno)
Ovaj parametar također nije obavezan. Ako nam je potrebna rijetka mreža za očuvanje memorije, ovaj parametar moramo postaviti na True. Prema zadanim postavkama postavljeno je na False.
kopija: bool (neobavezno)
Cilj ovog izbornog argumenta je vraćanje kopije izvornog niza radi očuvanja memorije. Prema zadanim postavkama postavljeno je na False.
Ako oboje oskudan i kopirati parametri su postavljeni na False, tada će vratiti nesusjedne nizove. Nadalje, više od jednog elementa niza emitiranja može se odnositi na jednu memorijsku lokaciju. Ako trebamo pisati u nizove, onda prvo moramo napraviti kopije.
Povratak
X1, X2, ..., Xn
Ova funkcija vraća koordinatnu duljinu iz koordinatnog vektora.
Primjer 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
Izlaz:
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. ]])
U gornjem kodu
- Uvezli smo numpy s alias imenom np.
- Stvorili smo dvije varijable, tj. na i nb, i dodijelili im vrijednosti 5 i 3.
- Stvorili smo dva niza, tj. a i b pomoću funkcije linspace().
- Nakon toga smo deklarirali varijable 'xa' i 'xb' i dodijelili vraćenu vrijednost od mrežasta mreža()
- Proslijedili smo oba niza 'a' i 'b' u funkciji
- Na kraju, pokušali smo ispisati vrijednost 'šah' i 'xb' .
U izlazu su prikazana dva polja koja sadrže koordinatne duljine iz koordinatnih vektora.
Primjer 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
Izlaz:
array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]])
Primjer 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()
Izlaz:
U gornjem kodu
- Uvezli smo numpy s alias imenom np.
- Uvezli smo matplotlib.pyplot kao plt.
- Stvorili smo dva niza, tj. a i b pomoću funkcije np.arange().
- Nakon toga smo deklarirali varijable 'xa' i 'xb' i dodijelili vraćenu vrijednost od mrežasta mreža()
- Proslijedili smo oba niza 'a' i 'b' u funkciji.
- Nakon toga smo deklarirali varijablu z i dodijelili povratnu vrijednost funkcije np.sine().
- Na kraju, pokušali smo nacrtati konturne linije i ispunjene konture pomoću plt.contourf()
U izlazu su iscrtane konturne linije.
Primjer 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()
Izlaz:
Primjer 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()
Izlaz: