Нумпи модул Питхон-а обезбеђује месхгрид() функција за креирање правоугаоне мреже уз помоћ датих 1-Д низова који представљају Матрично индексирање или Картезијанско индексирање . МАТЛАБ донекле инспирише функцију месхгрид(). Из координатних вектора, функција месхгрид() враћа координатне матрице.
На горњој слици, к-оса се креће од -5 до 5, а и-оса се креће од -5 до 5. Дакле, на слици је означена укупно 121 тачка, свака са к-координатом и и-координате. За било коју праву паралелну са к-осом, к-координате означених тачака су -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, и 5 респективно. С друге стране, за било коју праву паралелну са и-осом, и-координате означених тачака одоздо према горе су -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 и 5 респективно.
Синтакса
numpy.meshgrid(*xi, **kwargs)
Параметерс
к1, к2,…, кн : арраи_лике
Овај параметар дефинише 1-димензионални низ, који представља координате мреже.
индексирање: {'ки', 'иј'} (опционо)
Ово је опциони аргумент који дефинише картезијанско 'ки' (подразумевано) или матрично ('иј') индексирање излаза.
ретко: боол (опционо)
Овај параметар је такође опциони. Ако нам је потребна ретка мрежа за очување меморије, морамо да подесимо овај параметар на Тачно. Подразумевано је постављено на Фалсе.
копија: боол (опционо)
Циљ овог опционог аргумента је да враћа копију оригиналног низа ради очувања меморије. Подразумевано је постављено на Фалсе.
Ако обоје оскудан и копија параметри су постављени на Фалсе, онда ће вратити низове који нису суседни. Поред тога, више од једног елемента низа емитовања може се односити на једну меморијску локацију. Ако треба да упишемо у низове, онда прво морамо да направимо копије.
Повратак
Кс1, Кс2, ..., Ксн
Координатна дужина из координатног вектора се враћа из ове функције.
Пример 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
Излаз:
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. ]])
У горњем коду
- Увезли смо нумпи са псеудонимом нп.
- Направили смо две променљиве, тј. на и нб, и доделили вредности 5 и 3, респективно.
- Направили смо два низа, тј. а и б користећи функцију линспаце().
- Након тога, декларисали смо променљиве 'ка' и 'кб' и доделили враћену вредност месхгрид()
- Проследили смо оба низа 'а' и 'б' у функцији
- На крају, покушали смо да одштампамо вредност 'шах' и 'кб' .
У излазу су приказана два низа који садрже дужину координата из координатних вектора.
Пример 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
Излаз:
array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]])
Пример 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()
Излаз:
У горњем коду
- Увезли смо нумпи са псеудонимом нп.
- Увезли смо матплотлиб.пиплот као плт.
- Направили смо два низа, тј. а и б користећи функцију нп.аранге().
- Након тога, декларисали смо променљиве 'ка' и 'кб' и доделили враћену вредност месхгрид()
- Проследили смо оба низа 'а' и 'б' у функцији.
- Након тога, декларисали смо променљиву з и доделили повратну вредност функције нп.сине().
- На крају, покушали смо да нацртамо контурне линије и попуњене контуре коришћењем плт.цонтоурф()
На излазу су уцртане контурне линије.
Пример 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()
Излаз:
Пример 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()
Излаз: