Python 无需额外检查即可堆叠Numpy阵列

Python 无需额外检查即可堆叠Numpy阵列,python,arrays,numpy,Python,Arrays,Numpy,我有两个Numpy数组标签和更多标签。在一种情况下,两个阵列都是1D,具有形状(m,)和(n),在另一种情况下,两个阵列都是2D,具有形状(m,k)和(n,k)。我想把它们结合起来,这样得到的数组在一维情况下具有形状(m+n,),在二维情况下具有形状(m+n,k) 目前我不得不分别处理这两个案件,如下所示: if(labels.ndim > 1): numpy.vstack(labels,more_labels) else numpy.hstack(labels,more_

我有两个Numpy数组
标签
更多标签
。在一种情况下,两个阵列都是1D,具有形状(m,)和(n),在另一种情况下,两个阵列都是2D,具有形状(m,k)和(n,k)。我想把它们结合起来,这样得到的数组在一维情况下具有形状(m+n,),在二维情况下具有形状(m+n,k)

目前我不得不分别处理这两个案件,如下所示:

if(labels.ndim > 1):
    numpy.vstack(labels,more_labels)
else
    numpy.hstack(labels,more_labels)
是否有一种Numpy方法可以同时处理这两种情况?

您需要沿给定轴连接阵列。在这种情况下,由于要沿第一个轴连接它们,因此可以使用默认的
参数,该参数设置为0

numpy.连接((a1,a2,…),轴=0)

连接一系列数组 沿着现有轴

以下是一个例子:

n [18]: a = np.array([1,2, 3])

In [19]: b = np.array([0,0, 3])

In [20]: np.hstack((a, b))
Out[20]: array([1, 2, 3, 0, 0, 3])

In [21]: np.concatenate((a, b))
Out[21]: array([1, 2, 3, 0, 0, 3])

In [22]: a = np.array([[1],[2], [3]])

In [23]: b = np.array([[0],[0], [3]])

In [24]: np.vstack((a, b))
Out[24]: 
array([[1],
       [2],
       [3],
       [0],
       [0],
       [3]])

In [25]: np.concatenate((a, b))
Out[25]: 
array([[1],
       [2],
       [3],
       [0],
       [0],
       [3]])

请注意
vstack
hstack
使用
串联
;它们有不同的指定轴的方法,并且可以调整标注的数量。它们是用Python编码的,可以用`np.source(np.hstack)`读取。