簡體   English   中英

如何迭代 MeshGrid?

[英]How can I iterate over a MeshGrid?

我有一個 function 返回點 (x, y) 的密度估計。 我想遍歷給定二維網格的所有 (x, y) 點,並讓密度 function 計算每個點的估計值,以便我可以有一個密度值矩陣,然后我可以使用 plot。

假設 function 被稱為density(x, y) ,它采用任意點 (x, y) 並返回該 (x, y) 的密度估計 (z)。 我希望能夠將 function 應用於二維網格中的每個點並存儲密度估計值,其中我可以使用plt.pcolormesh()來查看密度。

我怎樣才能做到這一點?

我想你想要一些關於這個的東西。

首先,定義密度 function。 為簡單起見,我采用 function |x| + |y| |x| + |y| .

def density(x, y):
    return np.abs(x) + np.abs(y)

現在讓我們定義沿xy維度的點並填充 arrays。 在以下示例中, xy是 1D arrays ,它們存儲n_xn_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)

請注意,您不需要顯式迭代網格網格,您也可以對 arrays xxyy使用看似標量的density() function。 有關meshgrid的詳細信息,請參閱此頁面

接下來只需使用pcolormesh()來顯示或保存。

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

output 是:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM