logo

numpy.meshgrid() Pythonban

A Python numpy modulja biztosítja meshgrid() függvény téglalap alakú rács létrehozásához a megadott 1-D tömbök segítségével, amelyek a Mátrix indexelés vagy Descartes-féle indexelés . A MATLAB némileg inspirálja a meshgrid() függvényt. A koordináta vektorokból a meshgrid() függvény visszaadja a koordináta mátrixokat.

numpy.meshgrid()

A fenti ábrán az x tengely -5 és 5 között, az y tengely pedig -5 és 5 között van. Tehát összesen 121 pont van az ábrán megjelölve, mindegyik x koordinátával, ill. y-koordináta. Bármely, az x tengellyel párhuzamos egyenes esetén a megjelölt pontok x koordinátái rendre -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 és 5. Másrészt, bármely, az y tengellyel párhuzamos egyenesre a megjelölt pontok y-koordinátái alulról felfelé: -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 és 5.

Szintaxis

 numpy.meshgrid(*xi, **kwargs) 

Paraméterek

x1, x2,…, xn : tömbszerű

smtp internet protokoll

Ez a paraméter határozza meg az egydimenziós tömböt, amely egy rács koordinátáit reprezentálja.

indexelés: {'xy', 'ij'} (opcionális)

Ez egy opcionális argumentum, amely meghatározza a kimenet derékszögű 'xy' (alapértelmezett) vagy mátrixos ('ij') indexelését.

ritka: bool (nem kötelező)

Ez a paraméter szintén nem kötelező. Ha ritka rácsra van szükségünk a memória megtakarításához, akkor ezt a paramétert True-ra kell állítani. Alapértelmezés szerint False értékre van állítva.

másolás: bool (nem kötelező)

Ennek az opcionális argumentumnak az a célja, hogy visszaadja az eredeti tömb másolatát a memória megőrzése érdekében. Alapértelmezés szerint False értékre van állítva.

Ha mindkettő ritka és másolat paraméter értéke False, akkor nem összefüggő tömböket ad vissza. Ezenkívül egy broadcast tömb egynél több eleme hivatkozhat egyetlen memóriahelyre. Ha a tömbökbe kell írni, akkor először másolatot kell készítenünk.

Visszatér

X1, X2, ..., Xn

Ebből a függvényből a koordinátavektorból származó koordinátahossz kerül visszaadásra.

javascript változó globális

1. példa:

 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 

Kimenet:

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

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztunk két változót, azaz a na-t és az nb-t, és hozzárendeltük az 5-ös, illetve a 3-as értéket.
  • Létrehoztunk két tömböt, azaz a-t és b-t a linspace() függvény segítségével.
  • Ezt követően deklaráltuk az 'xa' és 'xb' változókat, és hozzárendeltük a visszaadott értéket. meshgrid()
  • A függvényben az „a” és „b” tömböt is átadtuk
  • Végül megpróbáltuk kinyomtatni az értékét 'sah' és 'xb' .

A kimenetben két tömb látható, amelyek a koordinátavektorokból származó koordinátahosszt tartalmazzák.

2. példa:

 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 

Kimenet:

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

3. példa:

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

Kimenet:

numpy.meshgrid()

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • A matplotlib.pyplot fájlt plt néven importáltuk.
  • Létrehoztunk két tömböt, azaz a-t és b-t az np.arange() függvény segítségével.
  • Ezt követően deklaráltuk az 'xa' és 'xb' változókat, és hozzárendeltük a visszaadott értéket. meshgrid()
  • A függvényben az „a” és „b” tömböt is átadtuk.
  • Ezt követően deklaráltunk egy z változót, és hozzárendeltük az np.sine() függvény visszatérési értékét.
  • Végül megpróbáltunk kontúrvonalakat rajzolni és kontúrokat kitölteni a felhasználással a plt.contourf()

A kimenetben kontúrvonalak vannak ábrázolva.

4. példa:

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

Kimenet:

numpy.meshgrid()

5. példa:

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

Kimenet:

numpy.meshgrid()