numpy.stack 函数用于按给定的轴分别拆分多个相同形状的数组,并组成新的数组,维度增加。
numpy.stack 函数用于沿新轴连接数组序列,格式如下:
numpy.stack(arrays, axis)
参数说明:
arrays相同形状的数组序列axis:返回数组中的轴,输入数组沿着它来堆叠- 个人理解:按axis轴的单位拆分arrays(多个相同形状的数组)(深轴按页拆成面,纵轴按行拆成行,横轴按列拆成个体),并将多个相同形状数组拆分后各自的首元素拼接成新的axis轴(行、面、块等),其他元素交替拼接后依次依照原维度升维处理。例如:按横轴拆分列后,原来一行中的各列变为各行,一页中的各行变为各面,原来各面变为各块。也可理解为换列即换行,换行即换页,换页即换块。
#两个三维数组
1 import numpy as np 2 3 a=np.arange(27).reshape(3,3,3) 4 b=np.arange(27,54).reshape(3,3,3) 5 print(a) 6 print(b) 7 print('--------------------------------') 8 c=np.stack((a,b),axis=0) 9 print(c) 10 print('--------------------------------') 11 c=np.stack((a,b),axis=1) 12 print(c) 13 print('--------------------------------') 14 c=np.stack((a,b),axis=2) 15 print(c) 16 print('--------------------------------') 17 c=np.stack((a,b),axis=3) 18 print(c)
1 [[[ 0 1 2] 2 [ 3 4 5] 3 [ 6 7 8]] 4 5 [[ 9 10 11] 6 [12 13 14] 7 [15 16 17]] 8 9 [[18 19 20] 10 [21 22 23] 11 [24 25 26]]] 12 [[[27 28 29] 13 [30 31 32] 14 [33 34 35]] 15 16 [[36 37 38] 17 [39 40 41] 18 [42 43 44]] 19 20 [[45 46 47] 21 [48 49 50] 22 [51 52 53]]] 23 -------------------------------- 24 [[[[ 0 1 2] 25 [ 3 4 5] 26 [ 6 7 8]] 27 28 [[ 9 10 11] 29 [12 13 14] 30 [15 16 17]] 31 32 [[18 19 20] 33 [21 22 23] 34 [24 25 26]]] 35 36 37 [[[27 28 29] 38 [30 31 32] 39 [33 34 35]] 40 41 [[36 37 38] 42 [39 40 41] 43 [42 43 44]] 44 45 [[45 46 47] 46 [48 49 50] 47 [51 52 53]]]] 48 -------------------------------- 49 [[[[ 0 1 2] 50 [ 3 4 5] 51 [ 6 7 8]] 52 53 [[27 28 29] 54 [30 31 32] 55 [33 34 35]]] 56 57 58 [[[ 9 10 11] 59 [12 13 14] 60 [15 16 17]] 61 62 [[36 37 38] 63 [39 40 41] 64 [42 43 44]]] 65 66 67 [[[18 19 20] 68 [21 22 23] 69 [24 25 26]] 70 71 [[45 46 47] 72 [48 49 50] 73 [51 52 53]]]] 74 -------------------------------- 75 [[[[ 0 1 2] 76 [27 28 29]] 77 78 [[ 3 4 5] 79 [30 31 32]] 80 81 [[ 6 7 8] 82 [33 34 35]]] 83 84 85 [[[ 9 10 11] 86 [36 37 38]] 87 88 [[12 13 14] 89 [39 40 41]] 90 91 [[15 16 17] 92 [42 43 44]]] 93 94 95 [[[18 19 20] 96 [45 46 47]] 97 98 [[21 22 23] 99 [48 49 50]] 100 101 [[24 25 26] 102 [51 52 53]]]] 103 -------------------------------- 104 [[[[ 0 27] 105 [ 1 28] 106 [ 2 29]] 107 108 [[ 3 30] 109 [ 4 31] 110 [ 5 32]] 111 112 [[ 6 33] 113 [ 7 34] 114 [ 8 35]]] 115 116 117 [[[ 9 36] 118 [10 37] 119 [11 38]] 120 121 [[12 39] 122 [13 40] 123 [14 41]] 124 125 [[15 42] 126 [16 43] 127 [17 44]]] 128 129 130 [[[18 45] 131 [19 46] 132 [20 47]] 133 134 [[21 48] 135 [22 49] 136 [23 50]] 137 138 [[24 51] 139 [25 52] 140 [26 53]]]] 141 142 [Program finished]
#三个三维数组
1 import numpy as np 2 3 a=np.arange(27).reshape(3,3,3) 4 b=np.arange(27,54).reshape(3,3,3) 5 c=np.arange(54,81).reshape(3,3,3) 6 print(a) 7 print(b) 8 print(c) 9 print('--------------------------------') 10 d=np.stack((a,b,c),axis=0) 11 print(d) 12 print('--------------------------------') 13 d=np.stack((a,b,c),axis=1) 14 print(d) 15 print('--------------------------------') 16 d=np.stack((a,b,c),axis=2) 17 print(d) 18 print('--------------------------------') 19 d=np.stack((a,b,c),axis=3) 20 print(d)
1 [[[ 0 1 2] 2 [ 3 4 5] 3 [ 6 7 8]] 4 5 [[ 9 10 11] 6 [12 13 14] 7 [15 16 17]] 8 9 [[18 19 20] 10 [21 22 23] 11 [24 25 26]]] 12 [[[27 28 29] 13 [30 31 32] 14 [33 34 35]] 15 16 [[36 37 38] 17 [39 40 41] 18 [42 43 44]] 19 20 [[45 46 47] 21 [48 49 50] 22 [51 52 53]]] 23 [[[54 55 56] 24 [57 58 59] 25 [60 61 62]] 26 27 [[63 64 65] 28 [66 67 68] 29 [69 70 71]] 30 31 [[72 73 74] 32 [75 76 77] 33 [78 79 80]]] 34 -------------------------------- 35 [[[[ 0 1 2] 36 [ 3 4 5] 37 [ 6 7 8]] 38 39 [[ 9 10 11] 40 [12 13 14] 41 [15 16 17]] 42 43 [[18 19 20] 44 [21 22 23] 45 [24 25 26]]] 46 47 48 [[[27 28 29] 49 [30 31 32] 50 [33 34 35]] 51 52 [[36 37 38] 53 [39 40 41] 54 [42 43 44]] 55 56 [[45 46 47] 57 [48 49 50] 58 [51 52 53]]] 59 60 61 [[[54 55 56] 62 [57 58 59] 63 [60 61 62]] 64 65 [[63 64 65] 66 [66 67 68] 67 [69 70 71]] 68 69 [[72 73 74] 70 [75 76 77] 71 [78 79 80]]]] 72 -------------------------------- 73 [[[[ 0 1 2] 74 [ 3 4 5] 75 [ 6 7 8]] 76 77 [[27 28 29] 78 [30 31 32] 79 [33 34 35]] 80 81 [[54 55 56] 82 [57 58 59] 83 [60 61 62]]] 84 85 86 [[[ 9 10 11] 87 [12 13 14] 88 [15 16 17]] 89 90 [[36 37 38] 91 [39 40 41] 92 [42 43 44]] 93 94 [[63 64 65] 95 [66 67 68] 96 [69 70 71]]] 97 98 99 [[[18 19 20] 100 [21 22 23] 101 [24 25 26]] 102 103 [[45 46 47] 104 [48 49 50] 105 [51 52 53]] 106 107 [[72 73 74] 108 [75 76 77] 109 [78 79 80]]]] 110 -------------------------------- 111 [[[[ 0 1 2] 112 [27 28 29] 113 [54 55 56]] 114 115 [[ 3 4 5] 116 [30 31 32] 117 [57 58 59]] 118 119 [[ 6 7 8] 120 [33 34 35] 121 [60 61 62]]] 122 123 124 [[[ 9 10 11] 125 [36 37 38] 126 [63 64 65]] 127 128 [[12 13 14] 129 [39 40 41] 130 [66 67 68]] 131 132 [[15 16 17] 133 [42 43 44] 134 [69 70 71]]] 135 136 137 [[[18 19 20] 138 [45 46 47] 139 [72 73 74]] 140 141 [[21 22 23] 142 [48 49 50] 143 [75 76 77]] 144 145 [[24 25 26] 146 [51 52 53] 147 [78 79 80]]]] 148 -------------------------------- 149 [[[[ 0 27 54] 150 [ 1 28 55] 151 [ 2 29 56]] 152 153 [[ 3 30 57] 154 [ 4 31 58] 155 [ 5 32 59]] 156 157 [[ 6 33 60] 158 [ 7 34 61] 159 [ 8 35 62]]] 160 161 162 [[[ 9 36 63] 163 [10 37 64] 164 [11 38 65]] 165 166 [[12 39 66] 167 [13 40 67] 168 [14 41 68]] 169 170 [[15 42 69] 171 [16 43 70] 172 [17 44 71]]] 173 174 175 [[[18 45 72] 176 [19 46 73] 177 [20 47 74]] 178 179 [[21 48 75] 180 [22 49 76] 181 [23 50 77]] 182 183 [[24 51 78] 184 [25 52 79] 185 [26 53 80]]]]
#两个二维数组
1 import numpy as np 2 3 a=np.array([[1,2],[3,4]]) 4 b=np.array([[5,6],[7,8]]) 5 print(a) 6 print(b) 7 print('--------------------------------') 8 c=np.stack((a,b),axis=0) 9 print(c) 10 print('--------------------------------') 11 c=np.stack((a,b),axis=1) 12 print(c) 13 print('--------------------------------') 14 c=np.stack((a,b),axis=2) 15 print(c)
1 [[1 2] 2 [3 4]] 3 [[5 6] 4 [7 8]] 5 -------------------------------- 6 [[[1 2] 7 [3 4]] 8 9 [[5 6] 10 [7 8]]] 11 -------------------------------- 12 [[[1 2] 13 [5 6]] 14 15 [[3 4] 16 [7 8]]] 17 -------------------------------- 18 [[[1 5] 19 [2 6]] 20 21 [[3 7] 22 [4 8]]] 23 24 [Program finished]


浙公网安备 33010602011771号