簡體   English   中英

如何在numpy中制作帶孔的網格物體?

[英]How to make a meshgrid with holes in numpy?

我知道如何制作一個像這樣的簡單網格:

low1 = -1; high1 = 1;
n_p = 20
range1 = np.linspace(low1, high1,n_p/2, endpoint=False)
X = np.dstack(np.meshgrid(range1, range1)).reshape(-1, 2)

在此處輸入圖片說明

但是,制作下圖所示的網格的最佳方法是什么?

在此處輸入圖片說明

現在,我只是構建8個矩形並將其堆疊。 有什么更好的方法呢?

您可以先創建外部矩形,然后使用過濾器取出內部矩形:

x = np.linspace(-2, 2, 20, endpoint=False)
X = np.dstack(np.meshgrid(x, x)).reshape(-1, 2)       # outer rectangle

X[(np.abs(X + 0.1) > 1).any(1)].shape                 # take out the inner rectangle
# (300, 2)   300 = 20 * 20 (outer) - 10 * 10 (inner)

您可以使用防毒面具:

low1 = -1; high1 = 1;
n_p = 20
range1 = np.linspace(low1, high1,n_p//2, endpoint=False)
X, Y = np.meshgrid(range1, range1)
mask = ~((X < 0.4) & (X > -0.4) & (Y < 0.4) & (Y > -0.4))
np.c_[X[mask], Y[mask]]

暫無
暫無

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

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