当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
除了连接问题的答案之外,具有形状(400,1)的数组和具有形状(400,)的数组之间的根本区别是什么?
感谢您的帮助!
答案 0 :(得分:3)
(400,)
数组是一维数组(行向量)。逗号就在那里表示一个元组 - 例如类型(400)
和(400,)
到解释器中。 (400,1)
数组是形状为400行和1列(列向量)的2D数组。自动更改数组形状的函数(如vstack
和hstack
)仍会调用concatenate,但会增加额外的python开销(例如vstack source)。
以下任何一种都可以使用:
np.concatenate((Thood0_48[:, None], h_labels), axis=1)
np.vstack((Thood0_48, h_labels.T)).T
我会说前者是一个更好的解决方案,但后者演示了vstack
函数。