logo

numpy.meshgrid() i Python

Den numpy modulen til Python gir meshgrid() funksjon for å lage et rektangulært rutenett ved hjelp av de gitte 1-D-matrisene som representerer Matriseindeksering eller Kartesisk indeksering . MATLAB inspirerer noe til meshgrid()-funksjonen. Fra koordinatvektorene returnerer meshgrid()-funksjonen koordinatmatrisene.

numpy.meshgrid()

I figuren ovenfor varierer x-aksen fra -5 til 5, og y-aksen varierer fra -5 til 5. Så det er totalt 121 punkter markert i figuren, hver med x-koordinat og y-koordinat. For enhver linje parallelt med x-aksen er x-koordinatene til de markerte punktene henholdsvis -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 og 5. På den annen side, for enhver linje parallelt med y-aksen, er y-koordinatene til de markerte punktene fra bunn til topp -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 og 5 henholdsvis.

Syntaks

 numpy.meshgrid(*xi, **kwargs) 

Parametere

x1, x2,…, xn : array_like

Denne parameteren definerer den 1-dimensjonale matrisen, som representerer koordinatene til et rutenett.

indeksering: {'xy', 'ij'}(valgfritt)

Dette er et valgfritt argument som definerer kartesisk 'xy' (som standard) eller matrise ('ij') indeksering av utdata.

sparsom: bool (valgfritt)

Denne parameteren er også valgfri. Hvis vi trenger et sparsomt rutenett for å spare minne, må vi sette denne parameteren til True. Som standard er den satt til False.

postordregjennomgang

kopi: bool (valgfritt)

Målet med dette valgfrie argumentet er at det returnerer en kopi av den originale matrisen for å spare minne. Som standard er den satt til False.

Hvis begge sparsom og kopiere parametere er satt til False, så vil den returnere ikke-sammenhengende arrays. I tillegg kan mer enn ett element i en kringkastingsgruppe referere til en enkelt minneplassering. Hvis vi trenger å skrive inn i matrisene, må vi lage kopier først.

Returnerer

X1, X2, ..., Xn

Koordinatlengden fra koordinatvektoren returneres fra denne funksjonen.

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 

Produksjon:

 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 koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har laget to variabler, dvs. na og nb, og tildelt verdiene henholdsvis 5 og 3.
  • Vi har laget to arrays, dvs. a og b ved å bruke linspace()-funksjonen.
  • Etter det har vi deklarert variablene 'xa' og 'xb' og tildelt den returnerte verdien av meshgrid()
  • Vi har passert både matrisene 'a' og 'b' i funksjonen
  • Til slutt prøvde vi å skrive ut verdien av 'sjah' og 'xb' .

I utgangen er det vist to arrays som inneholder koordinatlengden fra koordinatvektorene.

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 

Produksjon:

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

Produksjon:

numpy.meshgrid()

I koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har importert matplotlib.pyplot som plt.
  • Vi har laget to matriser, dvs. a og b ved å bruke funksjonen np.arange().
  • Etter det har vi deklarert variablene 'xa' og 'xb' og tildelt den returnerte verdien av meshgrid()
  • Vi har passert både matrisene 'a' og 'b' i funksjonen.
  • Etter det har vi deklarert en variabel z og tildelt returverdien til funksjonen np.sine().
  • Til slutt prøvde vi å tegne konturlinjer og fylte konturer ved å bruke plt.contourf()

I utgangen er det 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() 

Produksjon:

datalinklagsprotokoller
numpy.meshgrid()

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

Produksjon:

numpy.meshgrid()