logo

numpy.meshgrid() у Python

Модуль numpy Python забезпечує meshgrid() функція для створення прямокутної сітки за допомогою заданих 1-D масивів, які представляють Індексація матриці або Декартова індексація . MATLAB дещо надихає функцію meshgrid(). З векторів координат функція meshgrid() повертає матриці координат.

numpy.meshgrid()

На наведеному вище малюнку вісь x знаходиться в діапазоні від -5 до 5, а вісь y в діапазоні від -5 до 5. Отже, на малюнку позначено 121 точку, кожна з яких має координату x і y-координата. Для будь-якої прямої, паралельної осі x, координати x позначених точок дорівнюють -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 і 5 відповідно. З іншого боку, для будь-якої прямої, паралельної осі y, координати y позначених точок знизу вгору дорівнюють -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4 і 5 відповідно.

Синтаксис

 numpy.meshgrid(*xi, **kwargs) 

Параметри

x1, x2,…, xn : подібний до масиву

Цей параметр визначає одновимірний масив, який представляє координати сітки.

індексація: {'xy', 'ij'}(необов'язково)

Це необов’язковий аргумент, який визначає декартову «xy» (за замовчуванням) або матричну («ij») індексацію виводу.

sparse: логічний (необов'язковий)

Цей параметр також необов'язковий. Якщо нам потрібна розріджена сітка для збереження пам’яті, ми повинні встановити для цього параметра значення True. За замовчуванням встановлено значення False.

сортувати arraylist

копія: bool (необов'язково)

Метою цього додаткового аргументу є повернення копії вихідного масиву для збереження пам’яті. За замовчуванням встановлено значення False.

Якщо обидва розріджений і копія параметри мають значення False, тоді він повертатиме несуміжні масиви. Крім того, більше ніж один елемент широкомовного масиву може посилатися на одну ділянку пам'яті. Якщо нам потрібно записати в масиви, то спочатку потрібно зробити копії.

Повернення

X1, X2, ..., Xn

Ця функція повертає довжину координати вектора координат.

приклад 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. ]]) 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили дві змінні, тобто na і nb, і присвоїли їм значення 5 і 3 відповідно.
  • Ми створили два масиви, тобто a і b за допомогою функції linspace().
  • Після цього ми оголосили змінні 'xa' і 'xb' і присвоїли повернуте значення meshgrid()
  • Ми передали обидва масиви 'a' і 'b' у функцію
  • Нарешті, ми спробували надрукувати значення 'шах' і 'xb' .

У вихідних даних було показано два масиви, які містять координатну довжину з координатних векторів.

приклад 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() 

Вихід:

numpy.meshgrid()

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми імпортували matplotlib.pyplot як plt.
  • Ми створили два масиви, тобто a і b за допомогою функції np.arange().
  • Після цього ми оголосили змінні 'xa' і 'xb' і присвоїли повернуте значення meshgrid()
  • Ми передали обидва масиви 'a' і 'b' у функцію.
  • Після цього ми оголосили змінну z і присвоїли значення, яке повертає функція np.sine().
  • Нарешті, ми спробували намалювати контурні лінії та заповнені контури за допомогою plt.contourf()

У вихідних даних нанесено контурні лінії.

Приклад 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() 

Вихід:

купа і сортування купи
numpy.meshgrid()

Приклад 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() 

Вихід:

numpy.meshgrid()