Spec-Zone.ru › NumPy 1.15

numpy.meshgrid

numpy.meshgrid(*xi, **kwargs) [source]

Возвращает матрицы координат из векторов координат.

Создаёт N-мерные массивы координат для векторизованных вычислений N-мерных скалярных/векторных полей по N-мерным сеткам, заданных одномерными массивами координат x1, x2,…, xn.

Изменено в версии 1.9: Разрешены 1-D и 0-D случаи.

Параметры:
x1, x2,…, xn : array_like

Одномерные массивы, представляющие координаты сетки.

indexing : {‘xy’, ‘ij’}, optional

Декартовое (‘xy’, по умолчанию) или матричное (‘ij’) индексирование выходных данных. Более подробная информация приведена в примечаниях.

Добавлена в версии 1.7.0.

sparse : bool, optional

Если True, возвращается разреженная сетка для экономии памяти. По умолчанию False.

Добавлена в версии 1.7.0.

copy : bool, optional

Если False, возвращаются представления исходных массивов для экономии памяти. По умолчанию True. Обратите внимание, что sparse=False, copy=False вероятно вернёт несмежные массивы. Более того, более чем один элемент широковещательного массива может ссылаться на одно расположение в памяти. Если вам нужно записывать в массивы, сначала сделайте копии.

Добавлена в версии 1.7.0.

Возвращает:
X1, X2,…, XN : ndarray

Для векторов x1, x2,…, ‘xn’ с длинами Ni=len(xi), возвращаются массивы формы (N1, N2, N3,...Nn), если индексирование=’ij’, или массивы формы (N2, N1, N3,...Nn), если индексирование=’xy’, с элементами xi , повторяемыми для заполнения матрицы вдоль первого измерения для x1, второго для x2 и так далее.

См. также

index_tricks.mgrid
Создаёт многомерную «сетку» с использованием обозначений индексирования.
index_tricks.ogrid
Создаёт открытую многомерную «сетку» с использованием обозначений индексирования.

Примечания

Эта функция поддерживает обе системы индексирования через ключевое слово indexing. Передача строки ‘ij’ возвращает сетку с матричным индексированием, а ‘xy’ возвращает сетку с декартовым индексированием. В 2-мерном случае с входами длины M и N, выходные данные имеют форму (N, M) для индексирования ‘xy’ и (M, N) для индексирования ‘ij’. В 3-мерном случае с входами длины 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]

В 1-D и 0-D случаях ключевые слова 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 очень полезен для вычисления функций на сетке.

>>> 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)

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.meshgrid.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API