我对这两种方法有点困惑:连接和堆栈
连接和堆栈提供完全相同的输出,它们两者之间有什么区别?
使用:连接
import numpy as np
my_arr_1 = np.array([ [1,4] , [2,7] ])
my_arr_2 = np.array([ [0,5] , [3,8] ])
join_array=np.concatenate((my_arr_1,my_arr_2),axis=0)
print(join_array)
Run Code Online (Sandbox Code Playgroud)
使用:堆栈
import numpy as np
my_arr_1 = np.array([ [1,4] , [2,7] ])
my_arr_2 = np.array([ [0,5] , [3,8] ])
join1_array=np.stack((my_arr_1,my_arr_2),axis=0)
print(join1_array)
Run Code Online (Sandbox Code Playgroud)
两者的输出相同:
[[[1 4]
[2 7]]
[[0 5]
[3 8]]]
Run Code Online (Sandbox Code Playgroud)
In [160]: my_arr_1 = np.array([ [1,4] , [2,7] ])
...: my_arr_2 = np.array([ [0,5] , [3,8] ])
...:
...: join_array=np.concatenate((my_arr_1,my_arr_2),axis=0)
In [161]: join_array
Out[161]:
array([[1, 4],
[2, 7],
[0, 5],
[3, 8]])
In [162]: _.shape
Out[162]: (4, 2)
Run Code Online (Sandbox Code Playgroud)
concatenate在现有轴上连接 2 个数组,因此 (2,2) 变为 (4,2)。
In [163]: join1_array=np.stack((my_arr_1,my_arr_2),axis=0)
In [164]: join1_array
Out[164]:
array([[[1, 4],
[2, 7]],
[[0, 5],
[3, 8]]])
In [165]: _.shape
Out[165]: (2, 2, 2)
Run Code Online (Sandbox Code Playgroud)
stack在新的轴线上加入他们。它实际上使它们都是(1,2,2)形状,然后使用concatenate。
相应的文档应该明确这一点。