NumPy 函数

NumPy meshgrid() 函数从坐标向量返回坐标矩阵。给定一维坐标数组 x1, x2,…, xn,它会生成 N-D 坐标数组,用于对 N-D 网格上的 N-D 标量/矢量场进行矢量化评估。

语法

numpy.meshgrid(*xi, copy=True, sparse=False, indexing='xy') 

    参数

    x1, x2,…, xn必填。 指定表示网格坐标的一维数组。

    返回值

    对于向量x1, x2,..., xn ,长度为 Ni=len(xi),返回 (N2, N1, N3,...Nn) 形状数组,其元素为 xi 重复填充矩阵,沿第一个维度填充 x1,第二个维度填充 x2,依此类推。

    示例:

    下面的示例显示了meshgrid()函数的用法。

    import numpy as np
    x = [1, 2, 3, 4, 5]
    y = [11, 12, 13, 14, 15]
    
    #利用meshgrid()函数获取两个二维数组
    x_new, y_new = np.meshgrid(x, y)
    
    #显示结果
    print("x_new:")
    print(x_new)
    print("\ny_new:")
    print(y_new) 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    上述代码的输出将是:

    x_new:
    [[1 2 3 4 5]
     [1 2 3 4 5]
     [1 2 3 4 5]
     [1 2 3 4 5]
     [1 2 3 4 5]]
    
    y_new:
    [[11 11 11 11 11]
     [12 12 12 12 12]
     [13 13 13 13 13]
     [14 14 14 14 14]
     [15 15 15 15 15]] 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    绘制函数

    meshgrid()函数的输出可用于绘制函数。

    示例:

    在下面的示例中,matplotlib contourf() 函数绘制填充的椭圆平面的等高线图。

    import matplotlib.pyplot as plt
    import numpy as np
    
    xlist = np.linspace(-5.0, 5.0, 100)
    ylist = ylist = np.linspace(-5.0, 5.0, 100)
    X, Y = np.meshgrid(xlist, ylist)
    
    #创建椭圆平面
    Z = (X**2)/4 + (Y**2)/9
    
    fig, ax = plt.subplots()
    
    #绘制填充等值线图
    cb = ax.contourf(X, Y, Z)
    #向绘图添加颜色条
    fig.colorbar(cb) 
    
    ax.set_title('Filled Contour Plot')
    ax.set_xlabel('x (cm)')
    ax.set_ylabel('y (cm)')
    
    plt.show() 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    上述代码的输出将是:

    NumPy meshgrid() 函数