numpy.meshgrid
-
numpy.meshgrid(*xi, **kwargs)[source] -
Возвращает матрицы координат из векторов координат.
Создает N-мерные массивы координат для векторизованных вычислений N-мерных скалярных/векторных полей на N-мерных сетках, заданных одномерными массивами координат x1, x2,…, xn.
Изменено в версии 1.9: Разрешены одномерные и нулевые случаи.
- Параметры
-
-
x1, x2,…, xnarray_like -
Одномерные массивы, представляющие координаты сетки.
-
indexing{‘xy’, ‘ij’}, optional -
Декартовы (‘xy’, по умолчанию) или матричные (‘ij’) индексы вывода. Дополнительные сведения см. в разделе Примечания.
Введено в версии 1.7.0.
-
sparsebool, optional -
Если True, возвращается разреженная сетка для экономии памяти. По умолчанию False.
Введено в версии 1.7.0.
-
copybool, optional -
Если False, возвращаются представления исходных массивов для экономии памяти. По умолчанию True. Обратите внимание, что
sparse=False, copy=Falseвероятно, вернёт несмежные массивы. Более того, более одного элемента массива с вещанием может ссылаться на одно и то же место в памяти. Если вам нужно записать в массивы, сначала создайте копии.Введено в версии 1.7.0.
-
- Возвращает
-
-
X1, X2,…, XNndarray -
Для векторов
x1,x2,…, ‘xn’ с длинамиNi=len(xi), возвращает массивы формы(N1, N2, N3,...Nn), если indexing=’ij’, или массивы формы(N2, N1, N3,...Nn), если indexing=’xy’, с элементамиxiповторяются для заполнения матрицы вдоль первого измерения дляx1, второго дляx2и так далее.
-
См. также
-
index_tricks.mgrid -
Построение многомерной «сетки» с использованием обозначений индексирования.
-
index_tricks.ogrid -
Построение открытой многомерной «сетки» с использованием обозначений индексирования.
Примечания
Эта функция поддерживает оба соглашения об индексировании с помощью ключевого слова indexing. Указание строки ‘ij’ возвращает сетку с матричным индексированием, а ‘xy’ — сетку с декартовым индексированием. В двумерном случае с входными данными длины M и N выходные данные имеют форму (N, M) для индексирования ‘xy’ и (M, N) для индексирования ‘ij’. В трехмерном случае с входными данными длины M, N и P выходные данные имеют форму (N, M, P) для индексирования ‘xy’ и (M, N, P) для индексирования ‘ij’. Разница проиллюстрирована в следующем фрагменте кода:
xv, yv = np.meshgrid(x, y, sparse=False, indexing='ij') for i in range(nx): for j in range(ny): # treat xv[i,j], yv[i,j] xv, yv = np.meshgrid(x, y, sparse=False, indexing='xy') for i in range(nx): for j in range(ny): # treat xv[j,i], yv[j,i]В одномерном и нулевом случае ключевые слова indexing и sparse не влияют.
Примеры
>>> nx, ny = (3, 2) >>> x = np.linspace(0, 1, nx) >>> y = np.linspace(0, 1, ny) >>> xv, yv = np.meshgrid(x, y) >>> xv array([[0. , 0.5, 1. ], [0. , 0.5, 1. ]]) >>> yv array([[0., 0., 0.], [1., 1., 1.]]) >>> xv, yv = np.meshgrid(x, y, sparse=True) # make sparse output arrays >>> xv array([[0. , 0.5, 1. ]]) >>> yv array([[0.], [1.]])meshgridочень полезен для вычисления функций на сетке.>>> import matplotlib.pyplot as plt >>> x = np.arange(-5, 5, 0.1) >>> y = np.arange(-5, 5, 0.1) >>> xx, yy = np.meshgrid(x, y, sparse=True) >>> z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2) >>> h = plt.contourf(x,y,z) >>> plt.show()
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.meshgrid.html