numpy.stack vs concatenate vs hstack vs vstack

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy.stack vs concatenate vs hstack vs vstack相关的知识,希望对你有一定的参考价值。

官方文档的解释如下:

stack:

Join a sequence of arrays along a new axis

concatenate:

Join a sequence of arrays along a existing axis

因此stack 是在新轴axis=n上加入矩阵,已有的axis>=n往后挪动,譬如以前的axis=n挪动到axis=n+1上

而concatenate是在已有的轴axis=n上加入矩阵。

 

 

stack 例子:

>>> a = np.array([1, 2, 3])
>>> b = np.array([2, 3, 4])
>>> np.stack((a, b))
array([[1, 2, 3],
       [2, 3, 4]])

concatenate例子:

>>> a = np.array([1, 2, 3])
>>> b = np.array([2, 3, 4])
>>> np.concatenate((a, b))
array([1, 2, 3, 2, 3, 4])



hstack:

Equivalent to np.cancatenate(tup, axis=1), if tup contains arrays that are at least 2-dimensional.

vstack:

Equivalent to np.cancatenate(tup, axis=0), if tup contains arrays that are at least 2-dimensional.

因此当hstack 和 vstack 在维度等于1时,其作用相当于stack, 创建新轴。

而当维度大于等于2时,其作用相当于cancatenate, 在已有轴上进行操作。

以上是关于numpy.stack vs concatenate vs hstack vs vstack的主要内容,如果未能解决你的问题,请参考以下文章

numpy.array()是否等于numpy.stack(...,axis = 0)?

Numpy Column Stack with Strings?

python numpy.row_stack?想知道怎么修改

以有效的方式将dict中的所有项目作为参数传递

JavaScript链式连接函数?

如何合并三个数组?