По какой причине numpy MGrid делает соглашение об индексировании комплексными числами? - PullRequest
0 голосов
/ 21 марта 2020

У меня есть проблемы с пониманием. Я прочитал следующее:

class MGridClass(nd_grid):
    """
    `nd_grid` instance which returns a dense multi-dimensional "meshgrid".

    An instance of `numpy.lib.index_tricks.nd_grid` which returns an dense
    (or fleshed out) mesh-grid when indexed, so that each returned argument
    has the same shape.  The dimensions and number of the output arrays are
    equal to the number of indexing dimensions.  If the step length is not a
    complex number, then the stop is not inclusive.

    However, if the step length is a **complex number** (e.g. 5j), then
    the integer part of its magnitude is interpreted as specifying the
    number of points to create between the start and stop values, where
    the stop value **is inclusive**.

Поэтому, если я приведу действительные числа, содержимое будет делиться по модулю n == 0:

>>> numpy.mgrid[0:4:1, 10:15:2] 
array([[[ 0,  0,  0],
        [ 1,  1,  1],
        [ 2,  2,  2],
        [ 3,  3,  3]],

       [[10, 12, 14],
        [10, 12, 14],
        [10, 12, 14],
        [10, 12, 14]]])

А с комплексными числами - нумерация целого числа с суффиксом j, вместо i для технических целей - это длина результирующих значений на соответствующей оси.

>>> numpy.mgrid[0:4:3j, 10:15:5j] 
array([[[ 0.  ,  0.  ,  0.  ,  0.  ,  0.  ],
        [ 2.  ,  2.  ,  2.  ,  2.  ,  2.  ],
        [ 4.  ,  4.  ,  4.  ,  4.  ,  4.  ]],

       [[10.  , 11.25, 12.5 , 13.75, 15.  ],
        [10.  , 11.25, 12.5 , 13.75, 15.  ],
        [10.  , 11.25, 12.5 , 13.75, 15.  ]]])

Но что особенного в комплексных числах, что они будут уместны, чтобы отразить это изменение перспективы вместо простого флага? Есть ли здесь другая часть настоящей фантазии numpy?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...