np.meshgrid()
是一个用于生成多维坐标网格的函数,它常用于在二维或三维空间中创建网格点坐标。
使用方式:
X, Y, Z = np.meshgrid(x_values, y_values, z_values)
其中,x_values
、y_values
和 z_values
是分别表示 x、y 和 z 坐标轴上的一维数组或列表。
返回值 X
、Y
和 Z
是与输入数组形状相同的多维数组,它们分别表示在网格上的 x、y 和 z 坐标。具体来说,X
保存了所有网格点的 x 坐标,Y
保存了所有网格点的 y 坐标,Z
保存了所有网格点的 z 坐标。
示例:
import numpy as np
x = np.array([1, 2, 3]) # x 坐标轴上的值
y = np.array([4, 5, 6]) # y 坐标轴上的值
X, Y = np.meshgrid(x, y)
print(X)
print(Y)
输出结果:
[[1 2 3]
[1 2 3]
[1 2 3]]
[[4 4 4]
[5 5 5]
[6 6 6]]
在这个示例中,np.meshgrid()
函数通过给定的 x
和 y
值生成了一个二维的网格。X
和 Y
数组分别表示了该网格上的所有点的 x 和 y 坐标。注意到,X
中的每一行都是 x
数组的复制,而 Y
中的每一列都是 y
数组的复制。
一个更高级的例子:
通过使用 np.meshgrid()
生成的坐标网格,可以方便地进行各种数据计算和可视化操作。
coords = [1,2,3,4,5]
n_dims = 3
grid = np.meshgrid(*[coords for _ in range(n_dims)])
print("*[coords for _ in range(n_dims)]\n",*[coords for _ in range(n_dims)])
print("grid\n",grid)
输出结果:
*[coords for _ in range(n_dims)]
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
grid
[array([[[1, 1, 1, 1, 1],
[2, 2, 2, 2, 2],
[3, 3, 3, 3, 3],
[4, 4, 4, 4, 4],
[5, 5, 5, 5, 5]],
[[1, 1, 1, 1, 1],
[2, 2, 2, 2, 2],
[3, 3, 3, 3, 3],
[4, 4, 4, 4, 4],
[5, 5, 5, 5, 5]],
[[1, 1, 1, 1, 1],
[2, 2, 2, 2, 2],
[3, 3, 3, 3, 3],
[4, 4, 4, 4, 4],
[5, 5, 5, 5, 5]],
[[1, 1, 1, 1, 1],
[2, 2, 2, 2, 2],
[3, 3, 3, 3, 3],
[4, 4, 4, 4, 4],
[5, 5, 5, 5, 5]],
[[1, 1, 1, 1, 1],
[2, 2, 2, 2, 2],
[3, 3, 3, 3, 3],
[4, 4, 4, 4, 4],
[5, 5, 5, 5, 5]]]),
array([[[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[1, 1, 1, 1, 1]],
[[2, 2, 2, 2, 2],
[2, 2, 2, 2, 2],
[2, 2, 2, 2, 2],
[2, 2, 2, 2, 2],
[2, 2, 2, 2, 2]],
[[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3],
[3, 3, 3, 3, 3]],
[[4, 4, 4, 4, 4],
[4, 4, 4, 4, 4],
[4, 4, 4, 4, 4],
[4, 4, 4, 4, 4],
[4, 4, 4, 4, 4]],
[[5, 5, 5, 5, 5],
[5, 5, 5, 5, 5],
[5, 5, 5, 5, 5],
[5, 5, 5, 5, 5],
[5, 5, 5, 5, 5]]]),
array([[[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]],
[[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]],
[[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]],
[[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]],
[[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]]])]