meshgrid與mgrid作用和用法比較

第一:meshgrid

官網(wǎng)解釋

meshgrid函數(shù)通常使用在數(shù)據(jù)的矢量化上。
它適用于生成網(wǎng)格型數(shù)據(jù),可以接受兩個(gè)一維數(shù)組生成兩個(gè)二維矩陣,對(duì)應(yīng)兩個(gè)數(shù)組中所有的(x,y)對(duì)。
np.meshgrid(*xi, **kwargs)
Return coordinate matrices from coordinate vectors.
Make N-D coordinate arrays for vectorized evaluations of N-D scalar/vector fields over N-D grids, given one-dimensional coordinate arrays x1, x2,..., xn.
根據(jù)提供的n個(gè)向量,返回N維度的矩陣坐標(biāo)

使用解釋

[X,Y]=meshgrid(x,y)
[X,Y]=meshgrid(x)與[X,Y]=meshgrid(x,x)是等同的,即如果生成x和y相等,可以寫一個(gè)向量
[X,Y,Z]=meshgrid(x,y,z)生成三維數(shù)組,可用來計(jì)算三變量的函數(shù)和繪制三維立體圖
注:其中x和y均為行向量

二維數(shù)據(jù)進(jìn)行解釋:

meshgrid中的結(jié)果X是以第一參數(shù)x在垂直方向上的復(fù)制和堆疊。
meshgrid中的結(jié)果Y是以第二參數(shù)y的轉(zhuǎn)置(變?yōu)榱邢蛄浚┰谒椒较蛏系膹?fù)制和堆疊。
meshgrid中的結(jié)果X和Y的維度都是:len(y) * len(x)
meshgrid的作用是:
根據(jù)傳入的兩個(gè)一維數(shù)組參數(shù)生成兩個(gè)數(shù)組元素的列表。
如果第一個(gè)參數(shù)是xarray,維度是xdimesion,也就是列的個(gè)數(shù),
第二個(gè)參數(shù)是yarray,維度是ydimesion,也就是行的個(gè)數(shù),
那么生成的第一個(gè)二維數(shù)組是以xarray為行,共ydimesion行的向量;
而第二個(gè)二維數(shù)組是以yarray的轉(zhuǎn)置為列,共xdimesion列的向量。

t1 = np.array([1,2,3])    
t2 = np.array([4,5,6,7])  
x,y = np.meshgrid(t1,t2)  
x.shape    
#(4, 3)
y.shape    
#(4, 3)

image.png

結(jié)果展示(matplotlib)

plt.plot(x,y, marker='.', color='red', linestyle='none')
plt.show()
image.png

獲得網(wǎng)格上坐標(biāo)點(diǎn)的數(shù)據(jù)

list(x.flat) #[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
list(y.flat) #[4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7]
[i for i in zip(x.flat,y.flat)]
[(1, 4),
 (2, 4),
 (3, 4),
 (1, 5),
 (2, 5),
 (3, 5),
 (1, 6),
 (2, 6),
 (3, 6),
 (1, 7),
 (2, 7),
 (3, 7)]

參考

image.png

圖片來源于:https://pic4.zhimg.com/80/v2-a7f1c996c371d1167a0fb7b5273c6d01_hd.jpg

第二:mgrid

以多個(gè)矩陣的形式進(jìn)行返回

第1返回值為第1維數(shù)據(jù)在最終結(jié)構(gòu)中的分布,第一參數(shù)上的每個(gè)值組成一個(gè)列向量在水平上進(jìn)行重復(fù)
第2返回值為第2維數(shù)據(jù)在最終結(jié)構(gòu)中的分布,以此類推。第二參數(shù)上的每個(gè)值組成一個(gè)行向量在垂直方向上進(jìn)行重復(fù)(分布以矩陣形式呈現(xiàn))
返回形狀:len(第一參數(shù)) X len(第二參數(shù)) X len(第三參數(shù))...
例如np.mgrid[X , Y]
樣本(i,j)的坐標(biāo)為 (X[i,j] ,Y[i,j]),X代表第1維,Y代表第2維,在此例中分別為橫縱坐標(biāo)。
比如:i=1,j=2,即坐標(biāo)(2,6)

image.png

第三:關(guān)系

meshgrid返回值相應(yīng)元素的轉(zhuǎn)置和mgrid返回值相應(yīng)元素結(jié)果上一致。


image.png

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容