logo

numpy.meshgrid() Python

Numpy Python modulis suteikia tinklelis () funkcija, skirta sukurti stačiakampį tinklelį, naudojant pateiktus 1-D masyvus, vaizduojančius Matricos indeksavimas arba Dekartinis indeksavimas . MATLAB šiek tiek įkvepia funkciją meshgrid (). Iš koordinačių vektorių funkcija meshgrid() grąžina koordinačių matricas.

numpy.meshgrid()

Aukščiau pateiktame paveikslėlyje x ašis svyruoja nuo -5 iki 5, o y ašis - nuo -5 iki 5. Taigi paveiksle iš viso yra pažymėtas 121 taškas, kiekvienas su x koordinatėmis ir y-koordinatė. Bet kuriai tiesei, lygiagrečiai x ašiai, pažymėtų taškų x koordinatės yra atitinkamai -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 ir 5. Kita vertus, bet kuriai tiesei, lygiagrečiai y ašiai, pažymėtų taškų y koordinatės iš apačios į viršų yra -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 ir 5 atitinkamai.

Sintaksė

 numpy.meshgrid(*xi, **kwargs) 

Parametrai

x1, x2,…, xn : masyvas_like

Šis parametras apibrėžia 1 dimensijos masyvą, kuris reiškia tinklelio koordinates.

konvertuoti eilutę į int Java

indeksavimas: {'xy', 'ij'} (neprivaloma)

Tai yra neprivalomas argumentas, apibrėžiantis Dekarto 'xy' (pagal numatytuosius nustatymus) arba matricą ('ij') išvesties indeksavimą.

žemėlapis mašinraščiu

retai: bool (neprivaloma)

Šis parametras taip pat neprivalomas. Jei atminčiai taupyti mums reikia reto tinklelio, turime nustatyti šį parametrą į True. Pagal numatytuosius nustatymus jis nustatytas į False.

kopija: bool (neprivaloma)

Šio neprivalomo argumento tikslas yra, kad jis grąžintų pradinio masyvo kopiją, kad būtų taupoma atmintis. Pagal numatytuosius nustatymus jis nustatytas į False.

Jei abu retas ir kopija parametrai nustatyti į False, tada jis grąžins negretimus masyvus. Be to, daugiau nei vienas transliacijos masyvo elementas gali nurodyti vieną atminties vietą. Jei mums reikia rašyti į masyvus, pirmiausia turime padaryti kopijas.

np reiškia

Grąžina

X1, X2, ..., Xn

Iš šios funkcijos grąžinamas koordinačių ilgis iš koordinačių vektoriaus.

1 pavyzdys:

 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 

Išvestis:

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

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Sukūrėme du kintamuosius, ty na ir nb, ir atitinkamai priskyrėme reikšmes 5 ir 3.
  • Sukūrėme du masyvus, ty a ir b, naudodami linspace() funkciją.
  • Po to mes paskelbėme kintamuosius „xa“ ir „xb“ ir priskyrėme grąžintą reikšmę tinklelis ()
  • Funkcijoje perdavėme masyvus „a“ ir „b“.
  • Galiausiai bandėme atspausdinti vertę 'shah' ir 'xb' .

Išvestyje buvo parodyti du masyvai, kuriuose yra koordinačių ilgis iš koordinačių vektorių.

kino aktorė Kajal

2 pavyzdys:

 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 

Išvestis:

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

3 pavyzdys:

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

Išvestis:

numpy.meshgrid()

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Importavome matplotlib.pyplot kaip plt.
  • Naudodami funkciją np.arange() sukūrėme du masyvus, ty a ir b.
  • Po to mes paskelbėme kintamuosius „xa“ ir „xb“ ir priskyrėme grąžintą reikšmę tinklelis ()
  • Funkcijoje perdavėme masyvus „a“ ir „b“.
  • Po to deklaravome kintamąjį z ir priskyrėme funkcijos np.sine() grąžinamąją reikšmę.
  • Galiausiai pabandėme nubrėžti kontūrines linijas ir užpildyti kontūrus naudodami plt.contourf()

Išvestyje nubrėžtos kontūro linijos.

4 pavyzdys:

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

Išvestis:

numpy.meshgrid()

5 pavyzdys:

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

Išvestis:

numpy.meshgrid()