Python 与奇怪的(3,)形数组连接?
当numpy.shape返回一个部分为空的形状时,这意味着什么?为什么我不能将它与另一个数组连接起来?例如: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) --------------------------------------------------
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
函数