原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html
校对:(虚位以待)
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
索引:{'xy','ij'},可选
稀疏:bool,可选
copy:bool,可选
|
---|---|
返回: | X1,X2,...,XN:ndarray
|
也可以看看
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)