Python中meshgrid的用途是什么??

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (2846)

有人能向我解释一下在Numpy中的meshgrid吗

我知道它为绘图创建了某种坐标网格,但我不能真正看到它的直接好处。

我正在学习“Python机器学习”,他正在用它来绘制决策边界,参考这里

是这样吗?
x = np.arange(-5, 5, 1)
y = np.arange(-5, 5, 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)

提问于
用户回答回答于

meshgrid是用x值数组和y值数组创建矩形网格。

例如,如果我们想要创建一个网格,在x和y两个方向上,每个整数值在0到4之间都有一个点。要创建矩形网格,我们需要xy积分。

x[0,0] = 0    y[0,0] = 0
x[0,1] = 0    y[0,1] = 1
x[0,2] = 0    y[0,2] = 2
x[0,3] = 0    y[0,3] = 3
x[0,4] = 0    y[0,4] = 4
x[1,0] = 1    y[1,0] = 0
x[1,1] = 1    y[1,1] = 1
...
x[4,3] = 4    y[4,3] = 3
x[4,4] = 4    y[4,4] = 4

这将导致以下情况xy矩阵,使得每个矩阵中对应元素的配对给出了网格中一个点的x和y坐标。

x =   0 0 0 0 0        y =   0 1 2 3 4
      1 1 1 1 1              0 1 2 3 4
      2 2 2 2 2              0 1 2 3 4
      3 3 3 3 3              0 1 2 3 4
      4 4 4 4 4              0 1 2 3 4

然后,我们可以绘制这些图来验证它们是否是网格:

plt.plot(x,y, marker='.', color='k', linestyle='none')

显然,这会变得非常乏味,特别是对于大范围的xy...。相反,meshgrid实际上可以为我们生成这样的信息:我们所需要指定的就是唯一的xy价值。

xvalues = np.array([0, 1, 2, 3, 4]);
yvalues = np.array([0, 1, 2, 3, 4]);

现在,当我们打电话meshgrid,我们将自动获得前面的输出。

xx, yy = np.meshgrid(xvalues, yvalues)

plt.plot(xx, yy, marker='.', color='k', linestyle='none')

创建这些矩形网格对于许多任务非常有用。上例中它只是一种示例函数(sin(x**2 + y**2) / (x**2 + y**2))的值范围。

用户回答回答于

扫码关注云+社区

领取腾讯云代金券