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]

 



posted @ 2021-02-19 12:40  霜火  阅读(117)  评论(0)    收藏  举报