python - 如何遍历 MeshGrid?

标签 python numpy iteration

我有一个函数可以返回点 (x, y) 的密度估计。我想遍历给定二维网格的所有 (x, y) 点,并让密度​​函数计算每个点的估计值,以便我可以有一个密度值矩阵,然后我可以绘制它。
假设函数被调用 density(x, y) , 取任意点 (x, y) 并返回该点 (x, y) 的密度估计值 (z)。我希望能够将该函数应用于二维网格中的每个点并存储我可以使用的密度估计,例如 plt.pcolormesh()查看密度。
我怎样才能做到这一点?

最佳答案

我想你想要这样的东西。
首先,定义一个密度函数。为简单起见,我采用函数 |x| + |y| .

def density(x, y):
    return np.abs(x) + np.abs(y)
现在让我们定义沿 x 的点和 y维度并填充数组。在以下示例中,xy是存储 n_x 的一维数组和 n_y每个点均在 [-1, 1] 中均匀采样.
n_x = 100
n_y = 100
x = np.linspace(-1, 1, n_x)
y = np.linspace(-1, 1, n_y)
根据点对计算网格并计算密度 D在网格中的每个点上。
xx, yy = np.meshgrid(x, y)
D = density(xx, yy)
请注意,您不需要显式迭代meshgrid,您可以使用看似标量density()数组函数 xxyy以及。详情meshgrid ,看到这个 page .
接下来只需使用 pcolormesh()显示或保存。
plt.pcolormesh(x, y, D)
plt.title('Density function = |x| + |y|')
plt.savefig('density.png')
输出是:
enter image description here

关于python - 如何遍历 MeshGrid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66795706/

相关文章:

Python Spyder 错误 TypeError : __init__() takes exactly 1 argument (2 given)

python - 如何从文件中读取两行并在 for 循环中创建动态键?

c# - 迭代枚举类型

python - 将二维数组中的每个值乘以另一个二维数组中的对应值

c# - 优化一个非常大的两级深度迭代

python - 如何在循环内自动调用下一个迭代器

python - 如何在 Linux 上使用 ipopt 优化器和 pyomo

python - 如何从本地文本文件中提取所有图像网址?

python - 倒着写字

python - 在python中将大图像文件读取为数组