因為最近在用tf裡邊的各種tensor的不同axis操作,搞得頭很疼,所以用numpy裡邊的axis的操作來看看這個axis的含義
首先定義乙個np,shape為(2,2,2)
a=np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
print出來是
[[[1 2]接下來分析每個數字的座標[3 4]]
[[5 6]
[7 8]]]
1為(0,0,0),2為(0,0,1),3為(0,1,0),4為(0,1,1),5為(1,0,0),6為(1,0,1),7為(1,1,0),8為(1,1,1)
接下來進行np.sum操作
b=np.sum(a,axis=(0))
輸出結果為
[[ 6 8]可以看到結果是乙個shape為(2,2)的tensor[10 12]]
其中6=1(0,0,0)+5(1,0,0),8=2(0,0,1)+6(1,0,1),10=3(0,1,0)+7(1,1,0),12=4(0,1,1)+8(1,1,1)
可以看到,以此相加的兩個數,最後兩維座標相同,第一維度座標不同
b=np.sum(a,axis=(0,1))
輸出結果為
[16 20]可以看到結果是乙個shape為(2)的tensor
其中16=1(0,0,0)+3(0,1,0)+5(1,0,0)+7(1,1,0),20=2(0,0,1)+4(0,1,1)+6(1,0,1)+8(1,1,1)
相加的數,最後一維座標相同,前兩維座標不同
b=np.sum(a,axis=(0,1,2))
輸出結果為
這次是沒有固定維度座標,直接全部相加
b=np.sum(a,axis=(1))
輸出結果為
[[ 4 6]其中4=1(0,0,0)+3(0,1,0),6=2(0,0,1)+4(0,1,1),12=5(1,0,0)+7(1,1,0),146(1,0,1)+8(1,1,1)[12 14]]
最終得到結論,np.sum中的引數axis為進行操作的維度,沒有在axis中輸入的維度為固定的維度,使用固定維度相同的數進行操作
填坑之作 python打包
要把python打包成exe 使用pyinstaller 命令 pyinstaller f w py 1 出現recursionerror maximum recursion depth exceeded錯誤 解決方法 在 filename.spec 檔案頭新增下面語句 import sys sys...
numpy陣列計算中的axis
numpy陣列計算中,經常要求按照某個軸計算,如axis 0 1.對於高維陣列,究竟是在哪個維度上計算呢?其實axis中的0,1,2指的就是陣列中資料塊的層級關係。0就是最外層,指的是從最外層進入陣列後的各個子資料塊 1就是就是進入前面的各個子資料塊後的更內層資料塊。以如下二維陣列為例,arr np...
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....