numpy.meshgrid¶
-
numpy.
meshgrid
(*xi, **kwargs)[source]¶ 从坐标向量返回坐标矩阵。
给定一维坐标数组x1,x2,...,xn,使N-D坐标数组用于N-D标量/矢量场在N-D网格上的向量化评估。
在版本1.9中更改:允许1-D和0-D情况。
参数: x1,x2,...,xn:array_like
表示网格的坐标的1-D数组。
索引:{'xy','ij'},可选
笛卡尔('xy',默认)或矩阵('ij')输出索引。有关详细信息,请参阅注释。
版本1.7.0中的新功能。
稀疏:bool,可选
如果为True,则返回稀疏网格以节省内存。默认值为False。
版本1.7.0中的新功能。
copy:bool,可选
如果为False,将返回原始数组的视图,以节省内存。默认值为True。请注意,
sparse = False, copy = False
可能会返回非连续数组。此外,广播数组的多于一个元件可以指代单个存储器位置。如果你需要写入数组,首先复制。版本1.7.0中的新功能。
返回: X1,X2,...,XN:ndarray
For vectors x1, x2,..., ‘xn’ with lengths
Ni=len(xi)
, return(N1, N2, N3,...Nn)
shaped arrays if indexing=’ij’ or(N2, N1, N3,...Nn)
shaped arrays if indexing=’xy’ with the elements of xi repeated to fill the matrix along the first dimension for x1, the second for x2 and so on.也可以看看
index_tricks.mgrid
- 使用索引符号构造多维“网格网格”。
index_tricks.ogrid
- 使用索引符号构造一个开放的多维“网格网格”。
笔记
此函数通过indexing关键字参数支持两种索引约定。给字符串'ij'返回一个带有矩阵索引的meshgrid,而'xy'返回一个带有笛卡尔索引的meshgrid。在具有长度M和N的输入的2-D情况下,对于'xy'索引,输出具有形状(N,M),而对于'ij'索引,输出具有(M,N)。在具有长度M,N和P的输入的3-D情况下,对于'xy'索引,输出具有形状(N,M,P),而对于'ij'索引,输出具有(M,N,P)。差异由以下代码段说明:
xv, yv = meshgrid(x, y, sparse=False, indexing='ij') for i in range(nx): for j in range(ny): # treat xv[i,j], yv[i,j] xv, yv = meshgrid(x, y, sparse=False, indexing='xy') for i in range(nx): for j in range(ny): # treat xv[j,i], yv[j,i]
在1-D和0-D情况下,索引和稀疏关键字没有效果。
例子
>>> nx, ny = (3, 2) >>> x = np.linspace(0, 1, nx) >>> y = np.linspace(0, 1, ny) >>> xv, yv = meshgrid(x, y) >>> xv array([[ 0. , 0.5, 1. ], [ 0. , 0.5, 1. ]]) >>> yv array([[ 0., 0., 0.], [ 1., 1., 1.]]) >>> xv, yv = meshgrid(x, y, sparse=True) # make sparse output arrays >>> xv array([[ 0. , 0.5, 1. ]]) >>> yv array([[ 0.], [ 1.]])
meshgrid
对于评估网格上的函数非常有用。>>> x = np.arange(-5, 5, 0.1) >>> y = np.arange(-5, 5, 0.1) >>> xx, yy = meshgrid(x, y, sparse=True) >>> z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2) >>> h = plt.contourf(x,y,z)