以tf.reduce_mean()為例
我這種理解其實就是對於上面加粗的對應元素的擴充套件,二維時候是axis=0是每行的第乙個元素求均值、第二個元素……,axis=1是每列的第乙個元素求均值,第二個元素……
擴充套件到多維其實也是一樣,我把多維矩陣理解成乙個樹狀圖,首先還是以簡單的二維矩陣為例
這樣乙個矩陣,其實也可以用下面的形式表示
根節點表示該矩陣,根節點下面的一行(本文中稱為第一行)表示行維度的兩個元素,行維度的元素可以看做是向量,每個向量又包含兩個列維度的元素。這樣的話,如果令axis=0,計算每行中第乙個元素的均值就是下圖這樣:
有了上面的鋪墊,我們就可以向更高維拓展,比如我們構造乙個2x2x2x2的四維矩陣,如下圖所示。其中為了方便畫圖和理解,我把最後兩維簡化成二維矩陣的形式。
axis=0和上面類似,所以我們來看一下axis=1的情況:
這裡值得注意的是計算第乙個對應元素時僅取樹的左半邊,即不會跨兩層進行計算,保持了上一層的維度。可以想象如果將右半部分也計算進來,最後的結果就只剩乙個二維矩陣了。
import tensorflow as tf
import numpy as np
x = np.array(
range(16
)).reshape([2
,2,2
,2])
a = tf.convert_to_tensor(x)
print
("原矩陣:"
,a)b = tf.reduce_mean(a, axis=1)
print
("\naxis=1求均值:"
,b)
numpy中多維陣列的軸(axis)
多維陣列的軸 axis 是和該陣列的size 或者shape 的元素是相對應的 np.random.seed 123 x np.random.randint 0,5,3,2,2 print x 5 2 4 2 1 3 2 3 1 1 0 1 x.sum axis 0 array 7,6 6,6 x....
numpy中多維陣列的軸 axis
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!多維陣列的軸 axis 是和該陣列的size 或者shape 的元素是相對應的 np.random.seed 123 x np.random.randint 0,5,3,2,2 print x 5 2 4 2 1 3 2 3 1 1 0 1 x.s...
numpy中多維陣列的軸(axis)
分享一下我老師大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!多維陣列的軸 axis 是和該陣列的size 或者shape 的元素是相對應的 np.random.seed 123 x np.random.randint 0,5,3,2,2 print...