最近在看pytorch的学习教程时,看到numpy.meshrid()这个函数。就上网搜了下。
numpy提供的numpy.meshgrid()函数可以让我们快速生成坐标矩阵。
使用meshgrid方法,你只需要构造一个表示x轴上的坐标的向量和一个表示y轴上的坐标的向量;然后作为参数给到meshgrid(),该函数就会返回相应维度的两个矩阵;
比如,你想构造一个2行3列的矩阵网格点,那么x生成一个shape(3,)的向量,y生成一个shape(2,)的向量,将x,y传入meshgrid(),最后返回的X,Y矩阵的shape(2,3)
语法:X,Y = numpy.meshgrid(x, y)
输入的x,y,就是网格点的横纵坐标列向量(非矩阵)
输出的X,Y,就是坐标矩阵。
举例如下,以下两种方式的效果一样:
第一种方式:
x = np.array([[0, 1, 2], [0, 1, 2]])
y = np.array([[0, 0, 0], [1, 1, 1]])
print(x)
print(y)
第二种方式:
x = np.array([0, 1, 2])
y = np.array([0, 1])
X, Y = np.meshgrid(x, y)
print(x)
print(y)
效果如下:
[[0, 1, 2]
[0, 1, 2]]
[[0,0,0]
[1,1,1]]