Det numpy modul i Python giver meshgrid() funktion til at skabe et rektangulært gitter ved hjælp af de givne 1-D-arrays, der repræsenterer Matrix indeksering eller Kartesisk indeksering . MATLAB inspirerer noget til meshgrid()-funktionen. Fra koordinatvektorerne returnerer funktionen meshgrid() koordinatmatricerne.
I ovenstående figur går x-aksen fra -5 til 5, og y-aksen går fra -5 til 5. Så der er i alt 121 punkter markeret i figuren, hver med x-koordinat og y-koordinat. For enhver linje parallel med x-aksen er x-koordinaterne for de markerede punkter henholdsvis -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 og 5. På den anden side, for enhver linje parallel med y-aksen, er y-koordinaterne for de markerede punkter fra bund til top -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 og 5 henholdsvis.
Syntaks
numpy.meshgrid(*xi, **kwargs)
Parametre
x1, x2,…, xn : array_like
Denne parameter definerer det 1-dimensionelle array, som repræsenterer koordinaterne for et gitter.
indeksering: {'xy', 'ij'}(valgfrit)
Dette er et valgfrit argument, som definerer den kartesiske 'xy' (som standard) eller matrix ('ij') indeksering af output.
sparsom: bool (valgfrit)
Denne parameter er også valgfri. Hvis vi har brug for et sparsomt gitter til at bevare hukommelsen, skal vi indstille denne parameter til True. Som standard er den indstillet til Falsk.
postordregennemgang
kopi: bool (valgfrit)
Formålet med dette valgfrie argument er, at det returnerer en kopi af det originale array for at bevare hukommelsen. Som standard er den indstillet til Falsk.
Hvis begge sparsom og kopi parametre er sat til False, så returnerer den ikke-sammenhængende arrays. Derudover kan mere end ét element i et broadcast-array referere til en enkelt hukommelsesplacering. Hvis vi skal skrive ind i arrays, så skal vi først lave kopier.
Vender tilbage
X1, X2, ..., Xn
Koordinatlængden fra koordinatvektoren returneres fra denne funktion.
Eksempel 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
Produktion:
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. ]])
I ovenstående kode
- Vi har importeret numpy med alias navn np.
- Vi har lavet to variable, dvs. na og nb, og tildelt værdierne henholdsvis 5 og 3.
- Vi har oprettet to arrays, dvs. a og b ved hjælp af linspace()-funktionen.
- Derefter har vi erklæret variablerne 'xa' og 'xb' og tildelt den returnerede værdi af meshgrid()
- Vi har bestået både arrays 'a' og 'b' i funktionen
- Til sidst forsøgte vi at udskrive værdien af 'shah' og 'xb' .
I outputtet er der vist to arrays, som indeholder koordinatlængden fra koordinatvektorerne.
Eksempel 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
Produktion:
array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]])
Eksempel 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()
Produktion:
I ovenstående kode
- Vi har importeret numpy med alias navn np.
- Vi har importeret matplotlib.pyplot som plt.
- Vi har oprettet to arrays, dvs. a og b ved hjælp af np.arange() funktion.
- Derefter har vi erklæret variablerne 'xa' og 'xb' og tildelt den returnerede værdi af meshgrid()
- Vi har bestået både arrays 'a' og 'b' i funktionen.
- Derefter har vi erklæret en variabel z og tildelt returværdien af funktionen np.sine().
- Til sidst forsøgte vi at tegne konturlinjer og udfyldte konturer ved at bruge plt.contourf()
I outputtet er der plottet konturlinjer.
Eksempel 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()
Produktion:
strengformat i java
Eksempel 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()
Produktion: