logo

numpy.meshgrid() i Python

Den numpy modulen i Python tillhandahåller meshgrid() funktion för att skapa ett rektangulärt rutnät med hjälp av de givna 1-D-matriserna som representerar Matrisindexering eller Kartesisk indexering . MATLAB inspirerar något till meshgrid()-funktionen. Från koordinatvektorerna returnerar funktionen meshgrid() koordinatmatriserna.

numpy.meshgrid()

I figuren ovan sträcker sig x-axeln från -5 till 5, och y-axeln sträcker sig från -5 till 5. Så det finns totalt 121 punkter markerade i figuren, var och en med x-koordinater och y-koordinat. För varje linje parallell med x-axeln är x-koordinaterna för de markerade punkterna -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 respektive 5. Å andra sidan, för varje linje parallell med y-axeln, är y-koordinaterna för de markerade punkterna från botten till toppen -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 respektive 5.

Syntax

 numpy.meshgrid(*xi, **kwargs) 

Parametrar

x1, x2,…, xn : array_like

Denna parameter definierar den 1-dimensionella matrisen, som representerar koordinaterna för ett rutnät.

java arv

indexering: {'xy', 'ij'}(valfritt)

Detta är ett valfritt argument som definierar kartesisk 'xy' (som standard) eller matris ('ij') indexering av utdata.

t ff

sparse: bool (valfritt)

Denna parameter är också valfri. Om vi ​​behöver ett sparsamt rutnät för att spara minne måste vi ställa in denna parameter till True. Som standard är den inställd på False.

kopia: bool (valfritt)

Syftet med detta valfria argument är att det returnerar en kopia av den ursprungliga arrayen för att spara minne. Som standard är den inställd på False.

Om båda gles och kopiera parametrar är inställda på False, då returnerar den icke-sammanhängande arrayer. Dessutom kan mer än ett element i en broadcast-array referera till en enda minnesplats. Om vi ​​behöver skriva in i arrayerna måste vi göra kopior först.

jämförbar lista

Returnerar

X1, X2, ..., Xn

Koordinatlängden från koordinatvektorn returneras från denna funktion.

Exempel 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 ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat två variabler, dvs na och nb, och tilldelat värdena 5 respektive 3.
  • Vi har skapat två arrayer, det vill säga a och b med linspace()-funktionen.
  • Efter det har vi deklarerat variablerna 'xa' och 'xb' och tilldelat det returnerade värdet på meshgrid()
  • Vi har passerat både arrayerna 'a' och 'b' i funktionen
  • Till sist försökte vi skriva ut värdet på 'schah' och 'xb' .

I utgången har två arrayer visats som innehåller koordinatlängden från koordinatvektorerna.

java sträng cmp

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

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

numpy.meshgrid()

I ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har importerat matplotlib.pyplot som plt.
  • Vi har skapat två arrayer, dvs a och b med funktionen np.arange().
  • Efter det har vi deklarerat variablerna 'xa' och 'xb' och tilldelat det returnerade värdet på meshgrid()
  • Vi har passerat både arrayerna 'a' och 'b' i funktionen.
  • Efter det har vi deklarerat en variabel z och tilldelat returvärdet för funktionen np.sine().
  • Till sist försökte vi rita konturlinjer och fyllda konturer med hjälp av plt.contourf()

I utgången har konturlinjer plottats.

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

numpy.meshgrid()

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

numpy.meshgrid()