目錄
- 01 功能
- 02 語法
- 03 舉例
- 04 用途
01 功能
np.mgrid 用與生成具有“空間結構”的等差三維陣列,比如下面代碼,生成維度為 (2, 5, 5),:
array3D = np.mgrid[-4: 0: 5j,
0: 4: 5j]
print(array3D.shape)
print(array3D)
(2, 5, 5)
[[[-4. -4. -4. -4. -4.]
[-3. -3. -3. -3. -3.]
[-2. -2. -2. -2. -2.]
[-1. -1. -1. -1. -1.]
[ 0. 0. 0. 0. 0.]]
[[ 0. 1. 2. 3. 4.]
[ 0. 1. 2. 3. 4.]
[ 0. 1. 2. 3. 4.]
[ 0. 1. 2. 3. 4.]
[ 0. 1. 2. 3. 4.]]]
02 語法
語法格式如下:
np.mgrid[第1維,第2維,...]
dim = [start: end: step]
維度間用逗號分隔,第 i 維的寫法存在兩種情況:
a: b: cc表示生成的陣列元素之間的步長;- 陣列區間為
[a, b)(左閉右開);
a: b: cjcj表示生成的陣列元素的個數;- 陣列區間為
[a, b](左閉又閉);
具體的用法,我們在后面實體部分講解,
03 舉例
-
一維陣列
# 在[0, 4)區間內生成陣列,間隔為1 -> [0, 1, 2, 3] array1D = np.mgrid[0: 4: 1] # 在[0, 4]區間內生成陣列,個數為5 -> [0, 1, 2, 3, 4] array1Dj = np.mgrid[0: 4: 5j] print(array1D) print(array1Dj)[0 1 2 3] [0. 1. 2. 3. 4.]需要注意的是,當
c > b - a時,其不會生成有效的陣列,默認為0:array1D = np.mgrid[0: 4: 5] print(array1D)[0] -
兩個二維陣列
對于生成的高維陣列,我們應該這樣來看:
- 其會對陣列沿其他維度進行復制拓展(x->y,y->x)
-
兩個陣列再堆疊起來
x,y = np.mgrid[-4: 0: 5j, 0: 4: 5j] print("x: \t", x.shape, "\n", x) print("y: \t", y.shape, "\n", y)x: (5, 5) [[-4. -4. -4. -4. -4.] [-3. -3. -3. -3. -3.] [-2. -2. -2. -2. -2.] [-1. -1. -1. -1. -1.] [ 0. 0. 0. 0. 0.]] y: (5, 5) [[0. 1. 2. 3. 4.] [0. 1. 2. 3. 4.] [0. 1. 2. 3. 4.] [0. 1. 2. 3. 4.] [0. 1. 2. 3. 4.]]生成的陣列將其進行拆分即兩個
5 x 5的矩陣,其沿令外一個維度的方向進行復制拓展,
04 用途
對于更高維的陣列,我們結合它常見的應用三維繪圖,具體的參考:<python筆記:np.mgrid的用法>,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/80890.html
標籤:Python
