Python 中的 numpy.meshgrid()

17 Mar 2025 | 4 分钟阅读

Python 的 numpy 模块提供 meshgrid() 函数,用于借助表示 矩阵索引 笛卡尔索引 的给定一维数组创建矩形网格。MATLAB 在某种程度上启发了 meshgrid() 函数。 meshgrid() 函数根据坐标向量返回坐标矩阵。

numpy.meshgrid()

在上图中,x 轴的范围从 -5 到 5,y 轴的范围从 -5 到 5。因此,图中总共有 121 个点被标记,每个点都有 x 坐标和 y 坐标。对于平行于 x 轴的任何线,标记点的 x 坐标分别为 -5、-4、-3、-2、-1、0、1、2、3、4 和 5。另一方面,对于平行于 y 轴的任何线,标记点的 y 坐标从下到上分别为 -5、-4、-3、-2、-1、0、1、2、3、4 和 5。

语法

参数

x1, x2,…, xn : array_like

此参数定义一维数组,表示网格的坐标。

indexing: {'xy', 'ij'}(可选)

这是一个可选参数,用于定义输出的笛卡尔 'xy'(默认)或矩阵 ('ij') 索引。

sparse: bool(可选)

此参数也是可选的。 如果我们需要一个稀疏网格来节省内存,我们必须将此参数设置为 True。 默认情况下,它设置为 False。

copy: bool(可选)

此可选参数的目的是它返回原始数组的副本以节省内存。 默认情况下,它设置为 False。

如果 sparse copy 参数都设置为 False,那么它将返回非连续数组。 此外,广播数组的多个元素可以引用单个内存位置。 如果我们需要写入数组,那么我们首先需要进行复制。

返回值

X1, X2, …, Xn

该函数从坐标向量返回坐标长度。

示例 1

输出

array([[1.  , 1.25, 1.5 , 1.75, 2.  ],
       	[1.  , 1.25, 1.5 , 1.75, 2.  ],
       	[1.  , 1.25, 1.5 , 1.75, 2.  ]])
array([[1. , 1. , 1. , 1. , 1. ],
       	[1.5, 1.5, 1.5, 1.5, 1.5],
       	[2. , 2. , 2. , 2. , 2. ]])

在上面的代码中

  • 我们使用别名 np 导入了 numpy。
  • 我们创建了两个变量,即 na 和 nb,分别赋值为 5 和 3。
  • 我们使用 linspace() 函数创建了两个数组,即 a 和 b。
  • 之后,我们声明了变量“xa”和“xb”,并为 meshgrid() 赋值了返回值
  • 我们在函数中传递了数组 'a' 和 'b'。
  • 最后,我们尝试打印 'xa''xb' 的值。

在输出中,显示了两个数组,其中包含来自坐标向量的坐标长度。

示例 2

输出

array([[1.  , 1.25, 1.5 , 1.75, 2.  ]])
array([[1. ],
       	[1.5],
       	[2. ]])

示例 3

输出

numpy.meshgrid()

在上面的代码中

  • 我们使用别名 np 导入了 numpy。
  • 我们已经导入了 matplotlib.pyplot 作为 plt。
  • 我们使用 np.arange() 函数创建了两个数组,即 a 和 b。
  • 之后,我们声明了变量“xa”和“xb”,并为 meshgrid() 赋值了返回值
  • 我们在函数中传递了数组 'a' 和 'b'。
  • 之后,我们声明了一个变量 z,并为 np.sine() 函数赋值了返回值。
  • 最后,我们尝试使用 plt.contourf() 绘制等值线并填充等值线

在输出中,已绘制了等值线。

示例 4

输出

numpy.meshgrid()

示例 5

输出

numpy.meshgrid()
下一主题Numpy.std()