有人可以向我解釋 numpy 索引如何用于二維陣列。我發現很難把頭繞過去。
具體來說,如果我創建一個 2d 8x8 陣列,那么每個值在這個實體中代表什么:
array[x:y:i, t:n:m]
uj5u.com熱心網友回復:
在您的陣列中:
- 在
x和t,是在切片的開始; - 的
y和t,是片的末端; - 的
i和m,是切片的步驟。
例如,讓我們定義一個 8x8 陣列:
z=[[x*y x y for x in range(8)] for y in range(8)]
z=np.asarray(z)
Out[1]:
array([[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 1, 3, 5, 7, 9, 11, 13, 15],
[ 2, 5, 8, 11, 14, 17, 20, 23],
[ 3, 7, 11, 15, 19, 23, 27, 31],
[ 4, 9, 14, 19, 24, 29, 34, 39],
[ 5, 11, 17, 23, 29, 35, 41, 47],
[ 6, 13, 20, 27, 34, 41, 48, 55],
[ 7, 15, 23, 31, 39, 47, 55, 63]])
z.shape
Out[2]: (8, 8)
從第 0 行到第 3 行(不包括它)每 2 行,索引如下:
z[0:3:2]
Out[3]:
array([[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 2, 5, 8, 11, 14, 17, 20, 23]])
對于列:
z[:,1:6:3]
Out[4]:
array([[ 1, 4],
[ 3, 9],
[ 5, 14],
[ 7, 19],
[ 9, 24],
[11, 29],
[13, 34],
[15, 39]])
組合行和列:
z[0:3:2, 0:3:2]
Out[5]:
array([[0, 2],
[2, 8]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/338748.html
下一篇:在行上應用映射函式
