numpy.mgrid

numpy.mgrid[index object] = <numpy.lib.index_tricks.nd_grid object>

Функция numpy.mgrid() возвращает массив плотных координатных сеток N-мерного координатного пространства для указанных в виде диапазонов одномерных массивов координатных векторов.

Параметры:
index object - объект индексации
Под объектом индексации понимается список из двух или трех элементов, например [0:5] или [0:5:10j]. Если элементов в списке всего два, то это интерпретируется как полуоткрытый интервал [start, ... , stop), в котором все элементы отличаются на 1, а значение stop в сам интервал не входит. В качестве третьего элемента указывается мнимая часть комплексного числа, которое указывает на количество равномерно разнесенных элементов внутри закрытого интервала [start, ... , stop], при этом значение stop попадает в интервал.
Возвращает:
результат - массив NumPy
Массив плотных координатных сеток N-мерного координатного пространства, количество и размеры которых зависят от указанных диапазонов.
Смотрите так же: meshgrid, ogrid

Примеры

>>> import numpy as np
>>> 
>>> np.mgrid[0:4, 4:8]
array([[[0, 0, 0, 0],
        [1, 1, 1, 1],
        [2, 2, 2, 2],
        [3, 3, 3, 3]],

       [[4, 5, 6, 7],
        [4, 5, 6, 7],
        [4, 5, 6, 7],
        [4, 5, 6, 7]]])
>>> 
>>> np.mgrid[0:0.9:10j]
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])
>>>
>>> np.mgrid[0:15:6j]
array([  0.,   3.,   6.,   9.,  12.,  15.])
>>> 
>>> np.mgrid[0:0.8:5j, 0:15:4j]
array([[[  0. ,   0. ,   0. ,   0. ],
        [  0.2,   0.2,   0.2,   0.2],
        [  0.4,   0.4,   0.4,   0.4],
        [  0.6,   0.6,   0.6,   0.6],
        [  0.8,   0.8,   0.8,   0.8]],

       [[  0. ,   5. ,  10. ,  15. ],
        [  0. ,   5. ,  10. ,  15. ],
        [  0. ,   5. ,  10. ,  15. ],
        [  0. ,   5. ,  10. ,  15. ],
        [  0. ,   5. ,  10. ,  15. ]]])
>>>
>>>
>>> x, y = np.mgrid[0:0.8:5j, 0:15:4j]
>>> x
array([[ 0. ,  0. ,  0. ,  0. ],
       [ 0.2,  0.2,  0.2,  0.2],
       [ 0.4,  0.4,  0.4,  0.4],
       [ 0.6,  0.6,  0.6,  0.6],
       [ 0.8,  0.8,  0.8,  0.8]])
>>> y
array([[  0.,   5.,  10.,  15.],
       [  0.,   5.,  10.,  15.],
       [  0.,   5.,  10.,  15.],
       [  0.,   5.,  10.,  15.],
       [  0.,   5.,  10.,  15.]])

Замечание

Функции meshgrid, mgrid и ogrid очень похожи друг на друга. meshgrid является самой гибкой, mgrid выдает только плотные массивы координатных сеток, а ogrid только сжатые до одной оси. При этом функция mgrid может быть легко переопределена в функцию ogrid:

>>> np.mgrid = np.lib.index_tricks.nd_grid(sparse=True)
>>>
>>> np.mgrid[0:0.8:5j, 0:15:4j]
[array([[ 0. ],
       [ 0.2],
       [ 0.4],
       [ 0.6],
       [ 0.8]]), array([[  0.,   5.,  10.,  15.]])]
>>>
>>> np.ogrid[0:0.8:5j, 0:15:4j]
[array([[ 0. ],
       [ 0.2],
       [ 0.4],
       [ 0.6],
       [ 0.8]]), array([[  0.,   5.,  10.,  15.]])]