美文网首页
meshgrid与mgrid作用和用法比较

meshgrid与mgrid作用和用法比较

作者: 微笑life | 来源:发表于2020-04-06 10:14 被阅读0次

    第一:meshgrid

    官网解释

    meshgrid函数通常使用在数据的矢量化上。
    它适用于生成网格型数据,可以接受两个一维数组生成两个二维矩阵,对应两个数组中所有的(x,y)对。
    np.meshgrid(*xi, **kwargs)
    Return coordinate matrices from coordinate vectors.
    Make N-D coordinate arrays for vectorized evaluations of N-D scalar/vector fields over N-D grids, given one-dimensional coordinate arrays x1, x2,..., xn.
    根据提供的n个向量,返回N维度的矩阵坐标

    使用解释

    [X,Y]=meshgrid(x,y)
    [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的,即如果生成x和y相等,可以写一个向量
    [X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
    注:其中x和y均为行向量

    二维数据进行解释:

    meshgrid中的结果X是以第一参数x在垂直方向上的复制和堆叠。
    meshgrid中的结果Y是以第二参数y的转置(变为列向量)在水平方向上的复制和堆叠。
    meshgrid中的结果X和Y的维度都是:len(y) * len(x)
    meshgrid的作用是:
    根据传入的两个一维数组参数生成两个数组元素的列表。
    如果第一个参数是xarray,维度是xdimesion,也就是列的个数,
    第二个参数是yarray,维度是ydimesion,也就是行的个数,
    那么生成的第一个二维数组是以xarray为行,共ydimesion行的向量;
    而第二个二维数组是以yarray的转置为列,共xdimesion列的向量。

    t1 = np.array([1,2,3])    
    t2 = np.array([4,5,6,7])  
    x,y = np.meshgrid(t1,t2)  
    x.shape    
    #(4, 3)
    y.shape    
    #(4, 3)
    
    
    image.png

    结果展示(matplotlib)

    plt.plot(x,y, marker='.', color='red', linestyle='none')
    plt.show()
    
    image.png

    获得网格上坐标点的数据

    list(x.flat) #[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
    list(y.flat) #[4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7]
    [i for i in zip(x.flat,y.flat)]
    [(1, 4),
     (2, 4),
     (3, 4),
     (1, 5),
     (2, 5),
     (3, 5),
     (1, 6),
     (2, 6),
     (3, 6),
     (1, 7),
     (2, 7),
     (3, 7)]
    

    参考

    image.png
    图片来源于:https://pic4.zhimg.com/80/v2-a7f1c996c371d1167a0fb7b5273c6d01_hd.jpg

    第二:mgrid

    以多个矩阵的形式进行返回

    第1返回值为第1维数据在最终结构中的分布,第一参数上的每个值组成一个列向量在水平上进行重复
    第2返回值为第2维数据在最终结构中的分布,以此类推。第二参数上的每个值组成一个行向量在垂直方向上进行重复(分布以矩阵形式呈现)
    返回形状:len(第一参数) X len(第二参数) X len(第三参数)...
    例如np.mgrid[X , Y]
    样本(i,j)的坐标为 (X[i,j] ,Y[i,j]),X代表第1维,Y代表第2维,在此例中分别为横纵坐标。
    比如:i=1,j=2,即坐标(2,6)

    image.png

    第三:关系

    meshgrid返回值相应元素的转置和mgrid返回值相应元素结果上一致。


    image.png
    image.png

    相关文章

      网友评论

          本文标题:meshgrid与mgrid作用和用法比较

          本文链接:https://www.haomeiwen.com/subject/gelyoctx.html