Pythonin numpy-moduuli tarjoaa meshgrid() toiminto suorakaiteen muotoisen ruudukon luomiseksi annettujen 1-D-taulukoiden avulla, jotka edustavat Matriisi-indeksointi tai Karteesinen indeksointi . MATLAB inspiroi jonkin verran meshgrid()-funktiota. Koordinaattivektoreista meshgrid()-funktio palauttaa koordinaattimatriisit.
Yllä olevassa kuvassa x-akseli on -5 - 5 ja y-akseli -5 - 5. Kuvaan on siis merkitty yhteensä 121 pistettä, joista jokaisessa on x-koordinaatit ja y-koordinaatti. Minkä tahansa x-akselin suuntaisen suoran kohdalla merkittyjen pisteiden x-koordinaatit ovat -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 ja 5. Toisaalta minkä tahansa y-akselin suuntaisen suoran kohdalla merkittyjen pisteiden y-koordinaatit alhaalta ylös ovat -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 ja 5 vastaavasti.
Syntaksi
numpy.meshgrid(*xi, **kwargs)
Parametrit
x1, x2,…, xn : array_like
Tämä parametri määrittää 1-ulotteisen taulukon, joka edustaa ruudukon koordinaatteja.
indeksointi: {'xy', 'ij'} (valinnainen)
Tämä on valinnainen argumentti, joka määrittää tulosteen suorakulmaisen 'xy' (oletusarvoisesti) tai matriisin ('ij') indeksoinnin.
harva: bool (valinnainen)
Tämä parametri on myös valinnainen. Jos tarvitsemme harvaa ruudukkoa muistin säästämiseen, meidän on asetettava tämä parametri arvoon True. Oletusarvona se on False.
kopio: bool (valinnainen)
Tämän valinnaisen argumentin tarkoituksena on, että se palauttaa kopion alkuperäisestä taulukosta muistin säästämiseksi. Oletusarvona se on False.
Jos molemmat harva ja kopio parametrien arvoksi on asetettu False, se palauttaa ei-vierekkäisiä taulukoita. Lisäksi useampi kuin yksi yleislähetystaulukon elementti voi viitata yhteen muistipaikkaan. Jos meidän on kirjoitettava taulukoihin, meidän on ensin tehtävä kopiot.
Palauttaa
X1, X2, ..., Xn
Koordinaatin pituus koordinaattivektorista palautetaan tästä funktiosta.
Esimerkki 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
Lähtö:
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. ]])
Yllä olevassa koodissa
- Olemme tuoneet numpyn aliasnimellä np.
- Olemme luoneet kaksi muuttujaa, eli na ja nb, ja annoimme arvot 5 ja 3.
- Olemme luoneet kaksi taulukkoa, eli a ja b käyttämällä linspace()-funktiota.
- Tämän jälkeen olemme ilmoittaneet muuttujat 'xa' ja 'xb' ja määrittäneet palautetun arvon meshgrid()
- Olemme läpäisseet sekä taulukot 'a' ja 'b' funktiossa
- Lopuksi yritimme tulostaa arvon 'shah' ja 'xb' .
Tulosteessa on esitetty kaksi taulukkoa, jotka sisältävät koordinaattien pituuden koordinaattivektoreista.
Esimerkki 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
Lähtö:
array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]])
Esimerkki 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()
Lähtö:
Yllä olevassa koodissa
- Olemme tuoneet numpyn aliasnimellä np.
- Olemme tuoneet matplotlib.pyplot-tiedoston nimellä plt.
- Olemme luoneet kaksi taulukkoa, eli a ja b käyttämällä np.arange()-funktiota.
- Tämän jälkeen olemme ilmoittaneet muuttujat 'xa' ja 'xb' ja määrittäneet palautetun arvon meshgrid()
- Olemme läpäisseet sekä taulukot 'a' ja 'b' funktiossa.
- Tämän jälkeen olemme ilmoittaneet muuttujan z ja määrittäneet funktion np.sine() paluuarvon.
- Lopuksi yritimme piirtää ääriviivoja ja täyttää ääriviivat käyttämällä the plt.contourf()
Tulosteessa ääriviivat on piirretty.
Esimerkki 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()
Lähtö:
Esimerkki 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()
Lähtö: