numpy中的concatenate和stack有什么区别



我有点混淆了这两种方法:concatenate和stack

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

使用:concatenate

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)

使用:堆栈

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)

两者的输出相同:

[[[1 4]
[2 7]]
[[0 5]
[3 8]]]
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)

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)

CCD_ 2在一个新的轴上加入了他们。它实际上使它们都是(1,2,2(形状,然后使用concatenate

相关文件应明确说明这一点。

最新更新