Python 与奇怪的(3,)形数组连接?

Python 与奇怪的(3,)形数组连接?,python,arrays,numpy,Python,Arrays,Numpy,当numpy.shape返回一个部分为空的形状时,这意味着什么?为什么我不能将它与另一个数组连接起来?例如: In: print h_labels.shape print Thood0_48.shape print np.concatenate((Thood0_48,h_labels),axis=1).shape Out: (400,) (400, 48) --------------------------------------------------

当numpy.shape返回一个部分为空的形状时,这意味着什么?为什么我不能将它与另一个数组连接起来?例如:

In: print h_labels.shape
    print Thood0_48.shape
    print np.concatenate((Thood0_48,h_labels),axis=1).shape

Out: (400,)
     (400, 48)

     ---------------------------------------------------------------------------
     ValueError                                Traceback (most recent call last)
     <ipython-input-403-97b371dd2547> in <module>()
     1 print h_labels.shape
     2 print Thood0_48.shape
     ----> 3 print np.concatenate((Thood0_48,h_labels),axis=1).shape

     ValueError: all the input arrays must have same number of dimensions
In:print h_labels.shape
打印Thood0_48.0形状
打印np.连接((Thood0_48,h_标签),轴=1)。形状
输出:(400,)
(400, 48)
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
1打印h_标签。形状
2.打印Thood0_48.形状
---->3打印np。连接((Thood0_48,h_标签),轴=1)。形状
ValueError:所有输入数组的维数必须相同
除了串联问题的答案之外,形状为(400,1)的数组和形状为(400,)的数组之间的根本区别是什么

谢谢你的帮助

A
(400,)
数组是一维数组(行向量)。逗号只是用来表示元组,例如在解释器中键入
(400)
(400,)
(400,1)
数组是一个二维数组,形状为400行1列(列向量)。自动更改数组形状的函数,如
vstack
hstack
仍然调用concatenate,但会增加python开销(例如)

以下任一项均有效:

np.concatenate((Thood0_48[:, None], h_labels), axis=1)
np.vstack((Thood0_48, h_labels.T)).T
我想说前者是更好的解决方案,但后者演示了
vstack
函数