logo

numpy.meshgrid() in Python

De numpy-module van Python biedt meshraster() functie voor het maken van een rechthoekig raster met behulp van de gegeven 1-D-arrays die de Matrix-indexering of Cartesiaanse indexering . MATLAB inspireert enigszins de functie meshgrid(). Van de coördinaatvectoren retourneert de functie meshgrid() de coördinatenmatrices.

numpy.meshgrid()

In de bovenstaande afbeelding loopt de x-as van -5 tot 5, en de y-as van -5 tot 5. Er zijn dus in totaal 121 punten gemarkeerd in de figuur, elk met x-coördinaat en y-coördinaat. Voor elke lijn evenwijdig aan de x-as zijn de x-coördinaten van de gemarkeerde punten respectievelijk -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 en 5. Aan de andere kant zijn voor elke lijn evenwijdig aan de y-as de y-coördinaten van de gemarkeerde punten van onder naar boven -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 en 5 respectievelijk.

Syntaxis

 numpy.meshgrid(*xi, **kwargs) 

Parameters

x1, x2,…, xn: array_like

Deze parameter definieert de 1-dimensionale array, die de coördinaten van een raster vertegenwoordigt.

afrekenen in git

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

Dit is een optioneel argument dat de cartesiaanse 'xy' (standaard) of matrix ('ij') indexering van de uitvoer definieert.

toetsenbord voor pagina omlaag

schaars: bool (optioneel)

Deze parameter is ook optioneel. Als we een schaars raster nodig hebben om geheugen te besparen, moeten we deze parameter op True instellen. Standaard is deze ingesteld op False.

kopiëren: bool (optioneel)

Het doel van dit optionele argument is dat het een kopie van de originele array retourneert om geheugen te besparen. Standaard is deze ingesteld op False.

Als beide schaars En kopiëren parameters zijn ingesteld op False, worden niet-aaneengesloten arrays geretourneerd. Bovendien kan meer dan één element van een broadcastarray verwijzen naar een enkele geheugenlocatie. Als we in de arrays moeten schrijven, moeten we eerst kopieën maken.

erfenis in Java

Geeft terug

X1, X2, ..., Xn

De coördinaatlengte van de coördinaatvector wordt uit deze functie geretourneerd.

Voorbeeld 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 

Uitgang:

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

In de bovenstaande code

  • We hebben numpy geïmporteerd met aliasnaam np.
  • We hebben twee variabelen gemaakt, namelijk na en nb, en hebben respectievelijk de waarden 5 en 3 toegewezen.
  • We hebben twee arrays gemaakt, d.w.z. a en b, met behulp van de functie linspace().
  • Daarna hebben we de variabelen 'xa' en 'xb' gedeclareerd en de geretourneerde waarde van toegewezen meshraster()
  • We hebben zowel de arrays 'a' als 'b' in de functie doorgegeven
  • Ten slotte hebben we geprobeerd de waarde van af te drukken 'sjah' En 'xb' .

In de uitvoer zijn twee arrays weergegeven die de coördinaatlengte van de coördinaatvectoren bevatten.

factoriële java

Voorbeeld 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 

Uitgang:

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

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

Uitgang:

numpy.meshgrid()

In de bovenstaande code

  • We hebben numpy geïmporteerd met aliasnaam np.
  • We hebben matplotlib.pyplot geïmporteerd als plt.
  • We hebben twee arrays gemaakt, namelijk a en b, met behulp van de functie np.arange().
  • Daarna hebben we de variabelen 'xa' en 'xb' gedeclareerd en de geretourneerde waarde van toegewezen meshraster()
  • We hebben zowel de arrays 'a' als 'b' in de functie doorgegeven.
  • Daarna hebben we een variabele z gedeclareerd en de retourwaarde van de functie np.sine() toegewezen.
  • Ten slotte probeerden we contourlijnen en gevulde contouren te tekenen met behulp van de plt.contourf()

In de uitvoer zijn contourlijnen uitgezet.

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

Uitgang:

numpy.meshgrid()

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

Uitgang:

numpy.meshgrid()