是什么numpy.mgrid,技术上?

2024-04-19 21:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用numpy.mgrid有一段时间了,我对它的功能很熟悉。但从那以后,我一直在想它到底是什么。。。在

mgrid的典型用例和语法是

xx, yy = mgrid[0:5, 0:3]

困扰我的是语法mgrid[...],这让我相信{}不是函数或方法。docs表示{}是一个

nd_grid instance which returns a dense multi-dimensional “meshgrid”.

它在后台做什么?为什么它像函数一样使用,但是语法与函数的语法不同(我希望是mgrid((0,5), (0,3)))这样的语法。我真的很难理解mgrid是什么。在

欢迎有任何见解!在


Tags: 方法instance函数功能numpydocswhich语法
1条回答
网友
1楼 · 发布于 2024-04-19 21:30:11

numpy.mgrid是^{^{}对象。该对象允许您构建多维网格,如您所知。在

MGridClass扩展了^{} class,它实现了^{}方法。方括号实际上委托了对nd_grid.__getitem__的调用,该调用实现了基于传递的切片构造meshgrid的核心逻辑。在

在这里可以找到nd_grid工作的一个简短的MCVE。在

class dummy_1d_grid:
    def __getitem__(self, val):
        print(val)
        return np.arange(val.start, val.stop, val.step, )

^{pr2}$

当然,这都是一个实现细节,所以布局和类都可能会发生变化。重点是它是实现__getitem__方法的类的一个实例。因此它是切片的,而不是称为。在

相关问题 更多 >