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