numpy.stack()

Numpy.stack

Numpy.stack(arrays,axis=0)

函数功能:堆叠数组

参数说明:

arrays,需要进行堆叠的数组

axis,堆叠时使用的轴,axis=i时,表示在堆叠时首先选取第i+1维进行打包

 

具体例子:

eg1:

arrays = [[1,2,3,4],[5,6,7,8]]

axis=0表示的是第一维,即arrays[0]=[1,2,3,4]或arrays[1]=[5,6,7,8]。

eg2:

array = [[[1,2,3,4],[1,2,3,4],[1,2,3,4]]]

>>> #print array

[[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]]

arrays = np.array(array)

>>>#print arrays (注意其中已没有逗号进行分隔)

[[[1 2 3 4]

  [1 2 3 4]

  [1 2 3 4]]]

print np.stack(arrays,axis = 0)

>>>

#取出第一维的[[1,2,3,4],[1,2,3,4],[1,2,3,4]]进行打包

[[[1 2 3 4]

  [1 2 3 4]

  [1 2 3 4]]]

print np.stack(arrays,axis = 1)

>>>

#先对第二维进行打包,即[1,2,3,4]进行打包,其余类似。

[[[1 2 3 4]]

 

 [[1 2 3 4]]

 

 [[1 2 3 4]]]

print np.stack(arrays,axis = 2)

>>>

#先对第三维进行打包。

[[[1]

  [2]

  [3]

  [4]]

 

 [[1]

  [2]

  [3]

  [4]]

 

 [[1]

  [2]

  [3]

  [4]]]

eg3:

a = np.array([[1,2,3,4],[5,6,7,8]])

arrays2 = np.asarray([a,a,a])

>>>

arrays2为:

[[[1 2 3 4]

  [5 6 7 8]]

 

 [[1 2 3 4]

  [5 6 7 8]]

 

 [[1 2 3 4]

  [5 6 7 8]]]

print np.stack(arrays2,axis = 0)

#注意stack()函数会先把参数arrays中的每个元素变为numpy的数组,数组之间时没有逗号的。

>>>

[[[1 2 3 4]

  [5 6 7 8]]

 

 [[1 2 3 4]

  [5 6 7 8]]

 

 [[1 2 3 4]

  [5 6 7 8]]]

print np.stack(arrays2,axis = 1)

>>>

[[[1 2 3 4]

  [1 2 3 4]

  [1 2 3 4]]

 

 [[5 6 7 8]

  [5 6 7 8]

  [5 6 7 8]]]

print np.stack(arrays2,axis = 2)

>>>

[[[1 1 1]

  [2 2 2]

  [3 3 3]

  [4 4 4]]

 

 [[5 5 5]

  [6 6 6]

  [7 7 7]

  [8 8 8]]]

 

参考文章:

https://blog.csdn.net/csdn15698845876/article/details/73380803

https://blog.csdn.net/qq_26414307/article/details/79317965

猜你喜欢

转载自blog.csdn.net/mmg188/article/details/81707762