首先看一下什麼叫做維度,一個矩陣的維度大家都知道是二維。包含行和列。以下是三維的:
c = np.array([[[0, 1, 2, 3],
[4, 5, 6, 7]],
[[1, 2, 3, 4],
[5, 6, 7, 8]]])
查看維度:c.ndim = 3,更簡單的,小括號旁有幾個中括號 [ 就是幾維。
print(c.ndim) # 3
print(c.shape) # (2, 2, 4)
定位到某個元素時,c[i][j][k],其中 i 表示第一維,j 表示第二維,k 表示第三維。
axis取多少,就表明在哪個維度上求和。
- axis=None 表示對所有元素求和。
- axis=0 表示在第1個維度上求和。
- axis=1 表示在第2個維度上求和。
- 以此類推…
axis=0,對 i 進行求和,其餘爲結果的索引。求和公式爲:
輸出的shape自然也就是去掉 i的,爲(j, k),這裏就是(2,4)
例如s[1,1]=(1+2)=3,結果正確,其餘的可以自己驗算。
print(c.sum(axis=0).shape) # (2, 4)
print(c.sum(axis=0)) # 在第1個維度上求和。
# [[ 1 3 5 7]
# [ 9 11 13 15]]
axis=1,對 j 進行求和,直接把上面的公式中的 i改爲 j就行了。求和公式爲:
輸出的shape等於原來的減去j的,也就是(2,4)
print(c.sum(axis=1).shape) # (2, 4)
print(c.sum(axis=1)) # 在第2個維度上求和。
# [[ 4 6 8 10]
# [ 6 8 10 12]]
axis=2,與
上面同理。
print(c.sum(axis=2).shape) # (2, 2)
print(c.sum(axis=2)) # 在第2個維度上求和。
# [[ 6 22]
# [10 26]]
對三維數組a來說,axis=(0,1,2)也就等於axis=None,對所有元素進行求和。
參考: