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