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

какво е команда за експортиране в linux

Този параметър дефинира едномерния масив, който представлява координатите на мрежа.

индексиране: {'xy', 'ij'}(по избор)

Това е незадължителен аргумент, който дефинира декартово 'xy' (по подразбиране) или матрично ('ij') индексиране на изхода.

разреден: bool (по избор)

Този параметър също не е задължителен. Ако се нуждаем от рядка мрежа за запазване на паметта, трябва да зададем този параметър на True. По подразбиране е зададено False.

копие: 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' .

В изхода са показани два масива, които съдържат координатната дължина от координатните вектори.

история в java

Пример 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()