当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NumPy meshgrid方法用法及代码示例


Numpy 的 meshgrid(~) 方法返回一个网格,该网格在绘制 3D 图形的等值线图时非常有用。由于很难用语言解释此方法的作用,请参阅下面的示例。

参数

1. x1 | array-like

用于制作网格的输入数组。

2. x2 | array-like | optional

如果你想要一个二维网格,那么这是必需的。

* 请注意,如果需要,您可以添加更多数组(即 x3、x4...)。

3. sparse | boolean | optional

是否返回稀疏网格。如果您正在处理无法装入内存的大量数据,请将其设置为True。默认情况下,sparse=False

4. copy | boolean | optional

如果 True ,则创建并返回一个新的 Numpy 数组。如果False,则返回视图以节省内存。默认情况下,copy=True

返回值

如果仅指定x1,则返回 Numpy 数组。否则,将返回 Numpy 数组的元组。

例子

可视化网格

让我们创建一个 2D 网格:

x = [1,2,3,4]
y = [5,6,7,8]
xx, yy = np.meshgrid(x, y)

让我们揭开返回数组的内容:

print(xx)



[[1 2 3 4]
 [1 2 3 4]
 [1 2 3 4]
 [1 2 3 4]]

这是yy

print(yy)



[[5 5 5 5]
 [6 6 6 6]
 [7 7 7 7]
 [8 8 8 8]]

使用 Matplotlib,我们可以像这样绘制它们:

plt.scatter(xx, yy)
plt.show()

这给我们带来了以下结果:

绘制等高线图

现在让我们谈谈拥有这些data-points的实际好处。当我们绘制 3D 函数的等高线图时,它们会派上用场。

这是一个例子:

def f(x, y):
 return x**2 + y **2

我们可以像这样绘制轮廓:

x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
xx, yy = np.meshgrid(x, y)
zz = f(xx, yy)
plt.contour(xx, yy, zz)
plt.show()

这给了我们以下等高线图:

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | meshgrid method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。