我们有三个矩阵A,B,C如下:
1.当numpy.stack((A,B,C), axis=0)时,相当于增加一个0轴,把1,2轴(1轴为竖着的边,2轴为横着的边)切割成的矩阵平面用0轴连接起来,就相当于:
2.当numpy.stack((A,B,C), axis=1)时,相当于增加一个1轴,把1,2轴(1轴为竖着的边,2轴为横着的边)切割成的矩阵平面用0轴连接起来,就相当于:
3.当numpy.stack((A,B,C), axis=2)时,相当于增加一个2轴,把1,2轴(1轴为竖着的边,2轴为横着的边)切割成的矩阵平面用0轴连接起来,就相当于:
始终是用1,2轴组成的平面去切割这个立方体,不同的就只是看新增加的轴在哪里了。
python代码:
import numpy as np
A = np.arange(12).reshape((3,4))
B = np.arange(12,24).reshape((3,4))
C = np.arange(24,36).reshape((3,4))
print('matrix A:')
print(A)
print('matrix B:')
print(B)
print('matrix C:')
print(C)
print('stack axis=0'+'.'*30)
D0 = np.stack((A,B,C), axis=0)
print(D0)
print('stack axis=1'+'.'*30)
D1 = np.stack((A,B,C), axis=1)
print(D1)
print('stack axis=2'+'.'*30)
D2 = np.stack((A,B,C), axis=2)
print(D2)
matrix A:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
matrix B:
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]
matrix C:
[[24 25 26 27]
[28 29 30 31]
[32 33 34 35]]
stack axis=0..............................
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]
[[24 25 26 27]
[28 29 30 31]
[32 33 34 35]]]
stack axis=1..............................
[[[ 0 1 2 3]
[12 13 14 15]
[24 25 26 27]]
[[ 4 5 6 7]
[16 17 18 19]
[28 29 30 31]]
[[ 8 9 10 11]
[20 21 22 23]
[32 33 34 35]]]
stack axis=2..............................
[[[ 0 12 24]
[ 1 13 25]
[ 2 14 26]
[ 3 15 27]]
[[ 4 16 28]
[ 5 17 29]
[ 6 18 30]
[ 7 19 31]]
[[ 8 20 32]
[ 9 21 33]
[10 22 34]
[11 23 35]]]
[Finished in 0.3s]