1 Meshgrid 函数的基本用法

Numpy 的官方文章里,meshgrid 函数的英文描述也显得文绉绉的,理解起来有些难度。可以这么理解, meshgrid 函数用两个坐标轴上的点在平面上画网格。

用法:

[X,Y]=meshgrid(x,y)

[X,Y]=meshgrid(x) [X,Y]=meshgrid(x,x) 是等同的

[X,Y,Z]=meshgrid(x,y,z) 生成三维数组,可用来计算三变量的函数和绘制三维立体图

这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。[X,Y] = meshgrid(x,y) 将向量 x y 定义的区域转换成矩阵 X Y , 其中矩阵 X 的行向量是向量 x 的简单复制,而矩阵 Y 的列向量是向量 y 的简单复制 (注:下面代码中 X Y 均是数组,在文中统一称为矩阵了)。假设 x 是长度为 m 的向量,y 是长度为 n 的向量,则最终生成的矩阵 X Y 的维度都是 n*m (注意不是 m*n)。文字描述可能不是太好理解,下面通过代码演示下:


import numpy as np
import matplotlib.pyplot as plt
#matplotlib inline
m, n = (5, 3)
x = np.linspace(0, 1, m)
y = np.linspace(0, 1, n)
X, Y = np.meshgrid(x,y)
print('x:',x)
print('Y:',y)
print('X:',X)
print('Y:',Y)

运行结果:

Python语言之Numpy包Meshgrid 函数_三维数组

查看矩阵对应的维度:


print(X.shape)
print(Y.shape)

plt.plot(X, Y, marker='1', color='red', linestyle='')
plt.show()

运行结果:

Python语言之Numpy包Meshgrid 函数_三维数组_02

Python语言之Numpy包Meshgrid 函数_坐标轴_03



Python语言之Numpy包Meshgrid 函数_numpy_04Python语言之Numpy包Meshgrid 函数_坐标轴_05Python语言之Numpy包Meshgrid 函数_numpy_06Python语言之Numpy包Meshgrid 函数_数组_07Python语言之Numpy包Meshgrid 函数_numpy_08