美文网首页
np.ogrid & np.mgrid 用法

np.ogrid & np.mgrid 用法

作者: 水之心 | 来源:发表于2020-08-26 14:37 被阅读0次

    np.ogridnumpy.lib.index_tricks.nd_grid 的实例。如果步长是复数(例如 5j),则其大小的整数部分被解释为指定了在起始值和终止值之间创建的点数,其中停止值包含在内。

    1. 步长不是纯虚数,索引是左闭右开的:
    np.ogrid[0:10:2] # 步长默认为1
    

    输出:

    array([0, 2, 4, 6, 8])
    
    1. 步长是纯虚数,是闭合的索引:
    np.ogrid[0:10:2j]
    

    输出:

    array([ 0., 10.])
    

    对于一维数组 np.ogridnp.mgrid 的返回值是一样的。而二维数组则不同,先看 np.ogrid

    Y, X = np.ogrid[0:2, 0:3]
    
    print(X.shape)
    print(Y.shape)
    X, Y
    

    输出:

    (1, 3)
    (2, 1)
    Out[64]:
    (array([[0, 1, 2]]),
     array([[0],
            [1]]))
    

    为了更直观,可以将其可视化:

    def plot_grid(X, Y):
        from matplotlib import pyplot as plt
        plt.imshow(X)
        plt.show()
        plt.imshow(Y)
        plt.show()
    

    效果:

    再看看 np.mgrid

    Y, X = np.mgrid[0:2, 0:3]
    
    print(X.shape)
    print(Y.shape)
    X, Y
    

    输出:

    (2, 3)
    (2, 3)
    
    (array([[0, 1, 2],
            [0, 1, 2]]),
     array([[0, 0, 0],
            [1, 1, 1]]))
    

    可视化:

    更高维度的数组可自行研究,其基本原理是一致的。

    相关文章

      网友评论

          本文标题:np.ogrid & np.mgrid 用法

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