numpy中的连接和堆栈有什么区别

5 python numpy

我对这两种方法有点困惑:连接和堆栈

连接和堆栈提供完全相同的输出,它们两者之间有什么区别?

使用:连接

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)

hpa*_*ulj 5

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

相应的文档应该明确这一点。