先来尝试使用,然后再总结规律
x, y= np.mgrid[1:4:0.5, 2:4:0.5]
print(x)
print(y)
输出为:
这里,x,y都是二维数组,行数由第一个参数1:4:0.5决定,为6行,列数由第二个参数2:4:0.5决定,为4列。排布规律为:x跨行方向即列方向与第一个参数一致,y为跨列方向即行方向与第二个参数一致。
x, y, z= np.mgrid[1:2:0.5, 2:4:0.5, 3:6:1]
print(x)
print(y)
print(z)
有三个参数时,x,y,z,均为三维数组,三维数组内的二维数组数由第一个参数1:2:0.5决定,为2;
二维数组的行数由第二个参数2:4:0.5决定,为4;二维数组的列数由第三个参数3:6:1决定,为3。
排布规律也很明显,x是三维数组,在跨二维数组的方向上排布1,1.5;y是三维数组,在跨行方向上排布2,2.5,3,3.5;z是三维数组,在跨列方向上排布3,4,5
mgrid函数常常和另外两个函数配合使用用来形成网格点坐标
import numpy as np
import tensorflow as tf
# 生成等间隔数值点
x, y = np.mgrid[1:2:0.5, 2:4:0.5]
# 将x, y拉直(就是把多行的数组转为一个单行数组),并合并配对为二维张量,生成二维坐标点
grid = np.c_[x.ravel(), y.ravel()]
print("x:\n", x)
print("y:\n", y)
print("x.ravel():\n", x.ravel())
print("y.ravel():\n", y.ravel())
print('grid:\n', grid)