本文簡要介紹 python 語言中 numpy.meshgrid
的用法。
用法:
numpy.meshgrid(*xi, copy=True, sparse=False, indexing='xy')
從坐標向量返回坐標矩陣。
在給定一維坐標數組 x1、x2、...、xn 的情況下,製作 N-D 坐標數組,用於在 N-D 網格上對 N-D 標量/矢量場進行矢量化評估。
- x1, x2,…, xn: array_like
表示網格坐標的一維數組。
- indexing: {‘xy’, ‘ij’},可選
輸出的笛卡爾(‘xy’,默認)或矩陣(‘ij’)索引。有關詳細信息,請參閱注釋。
- sparse: 布爾型,可選
如果為 True,則返回維度坐標數組的形狀i從減少
(N1, ..., Ni, ... Nn)
到(1, ..., 1, Ni, 1, ..., 1)
.這些稀疏坐標網格旨在與廣播.在表達式中使用所有坐標時,廣播仍會導致 fully-dimensonal 結果數組。默認為假。
- copy: 布爾型,可選
如果為 False,則返回原始數組的視圖以節省內存。默認為真。請注意,
sparse=False, copy=False
可能會返回不連續的數組。此外,廣播數組的不止一個元素可以指代單個存儲器位置。如果您需要寫入數組,請先製作副本。
- X1, X2,…, XN: ndarray
對於向量x1,x2,..., ‘xn’ 有長度
Ni=len(xi)
, 返回(N1, N2, N3,...Nn)
如果 indexing='ij' 或(N2, N1, N3,...Nn)
如果 indexing='xy' 的元素為xi重複以沿第一維填充矩陣x1,第二個為x2等等。
參數:
返回:
注意:
此函數通過 indexing 關鍵字參數支持兩種索引約定。給出字符串 ‘ij’ 返回一個帶有矩陣索引的網格,而 ‘xy’ 返回一個帶有笛卡爾索引的網格。在長度為 M 和 N 的輸入的二維情況下,‘xy’ 索引的輸出形狀為 (N, M),‘ij’ 索引的輸出形狀為 (M, N)。在輸入長度為 M、N 和 P 的 3-D 情況下,‘xy’ 索引的輸出形狀為 (N, M, P),‘ij’ 索引的輸出形狀為 (M, N, P)。以下代碼片段說明了差異:
xv, yv = np.meshgrid(x, y, indexing='ij') for i in range(nx): for j in range(ny): # treat xv[i,j], yv[i,j] xv, yv = np.meshgrid(x, y, indexing='xy') for i in range(nx): for j in range(ny): # treat xv[j,i], yv[j,i]
在 1-D 和 0-D 的情況下,索引和稀疏關鍵字不起作用。
例子:
>>> nx, ny = (3, 2) >>> x = np.linspace(0, 1, nx) >>> y = np.linspace(0, 1, ny) >>> xv, yv = np.meshgrid(x, y) >>> xv array([[0. , 0.5, 1. ], [0. , 0.5, 1. ]]) >>> yv array([[0., 0., 0.], [1., 1., 1.]]) >>> xv, yv = np.meshgrid(x, y, sparse=True) # make sparse output arrays >>> xv array([[0. , 0.5, 1. ]]) >>> yv array([[0.], [1.]])
meshgrid
對於評估網格上的函數非常有用。如果函數依賴於所有坐標,您可以使用參數sparse=True
來節省內存和計算時間。>>> x = np.linspace(-5, 5, 101) >>> y = np.linspace(-5, 5, 101) >>> # full coorindate arrays >>> xx, yy = np.meshgrid(x, y) >>> zz = np.sqrt(xx**2 + yy**2) >>> xx.shape, yy.shape, zz.shape ((101, 101), (101, 101), (101, 101)) >>> # sparse coordinate arrays >>> xs, ys = np.meshgrid(x, y, sparse=True) >>> zs = np.sqrt(xs**2 + ys**2) >>> xs.shape, ys.shape, zs.shape ((1, 101), (101, 1), (101, 101)) >>> np.array_equal(zz, zs) True
>>> import matplotlib.pyplot as plt >>> h = plt.contourf(x, y, zs) >>> plt.axis('scaled') >>> plt.colorbar() >>> plt.show()
相關用法
- Python numpy memmap用法及代碼示例
- Python numpy median用法及代碼示例
- Python numpy mean用法及代碼示例
- Python numpy ma.indices用法及代碼示例
- Python numpy matrix.A1用法及代碼示例
- Python numpy ma.zeros用法及代碼示例
- Python numpy matrix.T用法及代碼示例
- Python numpy matrix.I用法及代碼示例
- Python numpy ma.diff用法及代碼示例
- Python numpy mat用法及代碼示例
- Python numpy ma.mask_rowcols用法及代碼示例
- Python numpy ma.where用法及代碼示例
- Python numpy ma.zeros_like用法及代碼示例
- Python numpy mgrid用法及代碼示例
- Python numpy ma.notmasked_contiguous用法及代碼示例
- Python numpy ma.concatenate用法及代碼示例
- Python numpy ma.apply_along_axis用法及代碼示例
- Python numpy matrix.partition用法及代碼示例
- Python numpy ma.compress_rowcols用法及代碼示例
- Python numpy matrix.transpose用法及代碼示例
- Python numpy ma.vstack用法及代碼示例
- Python numpy ma.atleast_3d用法及代碼示例
- Python numpy ma.count用法及代碼示例
- Python numpy matrix.itemsize用法及代碼示例
- Python numpy ma.fix_invalid用法及代碼示例
注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.meshgrid。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。