numpy.mgrid
является объектом из MGridClass
in numpy/index_tricks.py
. Этот объект позволяет вам строить многомерные сетки, как вы уже знаете.
MGridClass
расширяет класс nd_grid
, который реализует метод __getitem__
. Квадратные скобки фактически делегируют вызов nd_grid.__getitem__
, который реализует основную логику для построения сетки на основе переданных фрагментов.
Краткое описание работы nd_grid
можно найти здесь.
class dummy_1d_grid:
def __getitem__(self, val):
print(val)
return np.arange(val.start, val.stop, val.step, )
mgrid_1d = dummy_1d_grid()
mgrid_1d[:5]
slice(0, 5, None)
# array([0, 1, 2, 3, 4])
np.mgrid[0:5]
# array([0, 1, 2, 3, 4])
Конечно, это все детали реализации, поэтому макет и классы могут быть изменены. Необходимо сосредоточиться на том, что это экземпляр класса, реализующий метод __getitem__
. Следовательно это нарезано, а не называется.