Python 如何在网格网格上迭代?

Python 如何在网格网格上迭代?,python,numpy,iteration,Python,Numpy,Iteration,我有一个函数,返回点(x,y)的密度估计值。我想迭代给定二维网格的所有(x,y)点,让密度函数计算每个点的估计值,这样我可以得到一个密度值矩阵,然后我可以绘制它 假设函数名为密度(x,y),它取任意点(x,y)并返回该点(x,y)的密度估计值(z)。我希望能够将函数应用于二维网格中的每个点,并存储密度估计值,在其中我可以使用,例如,plt.pcolormesh()查看密度 我该怎么做呢?我想你在这方面需要一些东西 首先,定义一个密度函数。为简单起见,我使用函数|x |+|y | def密度(x,

我有一个函数,返回点(x,y)的密度估计值。我想迭代给定二维网格的所有(x,y)点,让密度函数计算每个点的估计值,这样我可以得到一个密度值矩阵,然后我可以绘制它

假设函数名为
密度(x,y)
,它取任意点(x,y)并返回该点(x,y)的密度估计值(z)。我希望能够将函数应用于二维网格中的每个点,并存储密度估计值,在其中我可以使用,例如,
plt.pcolormesh()
查看密度


我该怎么做呢?

我想你在这方面需要一些东西

首先,定义一个密度函数。为简单起见,我使用函数
|x |+|y |

def密度(x,y):
返回np.abs(x)+np.abs(y)
现在,让我们定义沿
x
y
维度的点,并填充数组。在下面的示例中,
x
y
是1D数组,它们存储
nux
nuy
点,每个点在
[-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)
请注意,您不需要显式地在网格网格上迭代,您也可以对数组
xx
yy
使用看似标量的
density()
函数。有关
meshgrid
的详细信息,请参见此

接下来只需使用
pcolormesh()
来显示或保存

plt.pcolormesh(x, y, D)
plt.title('Density function = |x| + |y|')
plt.savefig('density.png')
输出为:


欢迎来到StackOverflow。我不清楚你想做什么。听起来你想插值一个函数?可能会显示“返回密度估计值的函数”。我想你知道循环的
?如果不是插值,可能您需要的是
meshgrid
和矢量化?您好,谢谢您的欢迎。我已经编辑了这个问题,我希望它现在更有意义。我是StackOverflow的新手,仍然在努力掌握提问方式,所以请原谅我提问中的任何失误。谢谢