當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python NumPy meshgrid方法用法及代碼示例

Numpy 的 meshgrid(~) 方法返回一個網格,該網格在繪製 3D 圖形的等值線圖時非常有用。由於很難用語言解釋此方法的作用,請參閱下麵的示例。

參數

1. x1 | array-like

用於製作網格的輸入數組。

2. x2 | array-like | optional

如果你想要一個二維網格,那麽這是必需的。

* 請注意,如果需要,您可以添加更多數組(即 x3、x4...)。

3. sparse | boolean | optional

是否返回稀疏網格。如果您正在處理無法裝入內存的大量數據,請將其設置為True。默認情況下,sparse=False

4. copy | boolean | optional

如果 True ,則創建並返回一個新的 Numpy 數組。如果False,則返回視圖以節省內存。默認情況下,copy=True

返回值

如果僅指定x1,則返回 Numpy 數組。否則,將返回 Numpy 數組的元組。

例子

可視化網格

讓我們創建一個 2D 網格:

x = [1,2,3,4]
y = [5,6,7,8]
xx, yy = np.meshgrid(x, y)

讓我們揭開返回數組的內容:

print(xx)



[[1 2 3 4]
 [1 2 3 4]
 [1 2 3 4]
 [1 2 3 4]]

這是yy

print(yy)



[[5 5 5 5]
 [6 6 6 6]
 [7 7 7 7]
 [8 8 8 8]]

使用 Matplotlib,我們可以像這樣繪製它們:

plt.scatter(xx, yy)
plt.show()

這給我們帶來了以下結果:

繪製等高線圖

現在讓我們談談擁有這些data-points的實際好處。當我們繪製 3D 函數的等高線圖時,它們會派上用場。

這是一個例子:

def f(x, y):
 return x**2 + y **2

我們可以像這樣繪製輪廓:

x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
xx, yy = np.meshgrid(x, y)
zz = f(xx, yy)
plt.contour(xx, yy, zz)
plt.show()

這給了我們以下等高線圖:

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy | meshgrid method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。