先看看官方对这个函数的功能解释:
网址:https://numpy.org/doc/stable/reference/generated/numpy.stack.html?highlight=stack#numpy.stack 有三个参数,第一个是放入多个用来堆叠列表,第二个参数是指定沿着某个轴(0,1,2…)去堆叠元素,默认值为0,第三个是可选参数输出到某个变量里。 np.stack 要求堆叠的各个列表形状(shape属性)要相同。 看的可能并不是很明白。 这个函数的具体的堆叠细节官方有个没有解释。其实参与堆叠的各个列表会先自适应的增加一个维度,再在指定的0,1,2。。。上去堆叠。
下面给个例子解释一下:
在这之前说明下二维列表/数组形状为(2,3)。第0维表示行,值为2即有两行,第1维表示列,值为3即有3列,总的来说二维列表第一维都是表示行,第二维表示列。
a = np.array([1, 2, 3])
b = np.array([2, 3, 4])
print(np.stack((a, b), axis=0))
'''
输出结果:
[[1 2 3]
[2 3 4]]
'''
print(np.stack((a, b), axis=1))
'''
输出结果:
[[1 2]
[2 3]
[3 4]]
'''
a = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
b = np.array([[4, 5, 6], [4, 5, 6], [4, 5, 6]])
print(np.stack((a, b), axis=0))
'''
输出结果:
[[[1 2 3]
[1 2 3]
[1 2 3]]
[[4 5 6]
[4 5 6]
[4 5 6]]]
'''
print(np.stack((a, b), axis=1))
'''
输出结果:
[[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]]]
'''
print(np.stack((a, b), axis=2))
'''
输出结果:
[[[1 4]
[2 5]
[3 6]]
[[1 4]
[2 5]
[3 6]]
[[1 4]
[2 5]
[3 6]]]
'''
|