numpy meshgrid 和 mgrid 的兩個簡單實例和解析


numpy.meshgridnumpy.mgrid 用於返回包含坐標向量的坐標矩陣. 當坐標矩陣為二維時, 可用於在圖像變形時構建網格. 

 

實例一

from __future__ import print_function import numpy as np grid_y1, grid_x1 = np.meshgrid(range(5), range(3)) grid_x2, grid_y2 = np.mgrid[0:3, 0:5] # Two arrays are element-wise equal within a tolerance.
print ("grid_x1 == grid_x2?", np.allclose(grid_x1, grid_x2))   # True. 
print ("grid_y1 == grid_y2?", np.allclose(grid_y2, grid_y2))    # True. 

注意, 對於 np.meshgrid(range(5), range(3)), 

* 返回兩個數組 grid_y1和grid_x1,形狀均為 3 x 5, 不是 5 x 3 ; 
* 返回的第一個數組元素來自 range(5),即 3 行,每行均為 [0, 1, 2, 3, 4] ;
* 返回的第二個數組元素來自 range(3), 即 5 列,每列均為[0,1,2]

 

實例二

from __future__ import print_function import numpy as np grid_y1, grid_x1 = np.meshgrid(np.linspace(0,1,200), np.linspace(0,1,100))  # output 100 x 200 array
grid_x2, grid_y2 = np.mgrid[0:1:100j, 0:1:200j]    # output 100 x 200 array # Two arrays are element-wise equal within a tolerance.
print ("grid_x1 == grid_x2?", np.allclose(grid_x1, grid_x2))   # True. 
print ("grid_y1 == grid_y2?", np.allclose(grid_y2, grid_y2))    # True. 

注:

grid_y1, grid_x1 均為 100 x 200 數組.

grid_y1 數組有 100 行, 每行均為 np.linspace(0,1,200), 與 grid_y2 相同 ;

grid_x1 數組有 200 列, 每列均為 np.linspace(0,1,100), 與 grid_x2 相同 ;

0:1:100j 索引表示包含兩端即 0 和 1 , 均分為 100 個點 , 與 np.linspace(0,1,100) 含義相同.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM