numpy.meshgrid(*xi,**kwargs)
从一个坐标向量中返回坐标矩阵。
参数: | x1,x2,...,xn:array_like |
表示网格坐标的一维数组。 | |
indexing:{'xy','ij'},可选 | |
笛卡尔('xy',默认值)或矩阵('ij')输出索引。 | |
sparse:布尔,可选 | |
如果为True,则返回稀疏网格以节省内存。默认值为False。 | |
copy:布尔,可选 | |
如果为False,则返回原始数组的视图以节省内存。默认为True。请注意, 可能会返回非连续数组。此外,广播阵列的多于一个元素可以指代单个存储器位置。如果需要写入数组,请先进行复制。sparse=False, copy=False | |
返回值: | x1,x2,...,xn:ndarray |
对于长度为Ni = len(xi)输入数组x1,x2,...,xn,当参数indexing为'ij'时,返回(N1,N2,N3 ,... Nn)形阵列;当参数indexing为'xy',返回(N2, N1, N3,...Nn)形矩阵。用xi的元素重复填充矩阵沿x1的第一维,第二个为x2等。 |
Examples:
nx, ny = (3, 2)
x = np.linspace(0, 1, nx)
x
Out[1]: array([ 0. , 0.5, 1. ])
y = np.linspace(0, 1, ny)
y
Out[2]: array([ 0., 1.])
xv, yv = np.meshgrid(x, y)
xv
Out[3]:
array([[ 0. , 0.5, 1. ],
[ 0. , 0.5, 1. ]])
yv
Out[4]:
array([[ 0., 0., 0.],
[ 1., 1., 1.]])
meshgrid函数实际上是将两个输入的数组x和y进行了扩展。
由上面的示例可以看出,meshgrid函数是根据传入的两个一维数组参数生成两个数组元素的列表,第一个参数是x,x的维度为3,第二个参数是y,y的维度为2,
生成的第一个二维数组xv是以x为行,以y的纬度为行数的向量,
生成的第二个二维数组yv是以y的转置为列,以x的纬度为列数的向量。
xv, yv = np.meshgrid(x, y, sparse=True) # make sparse output arrays
xv
Out[5]: array([[ 0. , 0.5, 1. ]])
yv
Out[6]:
array([[ 0.],
[ 1.]])
添加参数sparse = True,就不会向上面一样进行扩展了,它产生的网格坐标不是所有的网格坐标,而是网格对角线上的坐标点。