Python 无需额外检查即可堆叠Numpy阵列
我有两个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_
标签
和更多标签
。在一种情况下,两个阵列都是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)`读取。