NumPy 函数

NumPy meshgrid() 函数从坐标向量返回坐标矩阵。给定一维坐标数组 x1, x2,…, xn,它会生成 N-D 坐标数组,用于对 N-D 网格上的 N-D 标量/矢量场进行矢量化评估。

语法

numpy.meshgrid(*xi, copy=True, sparse=False, indexing='xy') 

参数

x1, x2,…, xn必填。 指定表示网格坐标的一维数组。

返回值

对于向量x1, x2,..., xn ,长度为 Ni=len(xi),返回 (N2, N1, N3,...Nn) 形状数组,其元素为 xi 重复填充矩阵,沿第一个维度填充 x1,第二个维度填充 x2,依此类推。

示例:

下面的示例显示了meshgrid()函数的用法。

import numpy as np
x = [1, 2, 3, 4, 5]
y = [11, 12, 13, 14, 15]

#利用meshgrid()函数获取两个二维数组
x_new, y_new = np.meshgrid(x, y)

#显示结果
print("x_new:")
print(x_new)
print("\ny_new:")
print(y_new) 

上述代码的输出将是:

x_new:
[[1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]
 [1 2 3 4 5]]

y_new:
[[11 11 11 11 11]
 [12 12 12 12 12]
 [13 13 13 13 13]
 [14 14 14 14 14]
 [15 15 15 15 15]] 

绘制函数

meshgrid()函数的输出可用于绘制函数。

示例:

在下面的示例中,matplotlib contourf() 函数绘制填充的椭圆平面的等高线图。

import matplotlib.pyplot as plt
import numpy as np

xlist = np.linspace(-5.0, 5.0, 100)
ylist = ylist = np.linspace(-5.0, 5.0, 100)
X, Y = np.meshgrid(xlist, ylist)

#创建椭圆平面
Z = (X**2)/4 + (Y**2)/9

fig, ax = plt.subplots()

#绘制填充等值线图
cb = ax.contourf(X, Y, Z)
#向绘图添加颜色条
fig.colorbar(cb) 

ax.set_title('Filled Contour Plot')
ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')

plt.show() 

上述代码的输出将是:

NumPy meshgrid() 函数