我正在尝试连接两个数组:a和b,其中
a.shape
(1460,10)
b.shape
(1460,)
我尝试使用hstack并连接为:
np.hstack((a,b))
c=np.concatenate(a,b,0)
我遇到了错误
ValueError: all the input arrays must have same number of dimensions
请指导我连接并生成尺寸为1460 x 11的数组c。
答案 0 :(得分:1)
np.c_[a, b]
沿最后一个轴连接。
每the docs,
...数组将沿其最后一个轴堆叠 被升级为至少2-D,后置为1的形状
由于b
的形状为(1460,)
,因此在沿最后一个轴连接之前,其形状会升级为(1460, 1)
。
In [26]: c = np.c_[a,b]
In [27]: c.shape
Out[27]: (1460, 11)
答案 1 :(得分:1)
尝试
b = np.expand_dims( b,axis=1 )
然后
np.hstack((a,b))
或
np.concatenate( (a,b) , axis=1)
将正常运作。
答案 2 :(得分:1)
最基本的操作是:
np.concatenate((a,b[:,None]),axis=1)
[:,None]
位将b
变为(1060,1)
数组。现在两个数组的第一个维度匹配,你可以在第二个上轻松连接。
有很多方法可以将第二维添加到b
,例如reshape
和expanddims
。 hstack
使用的atleast_1d
在这种情况下无效。 atleast_2d
将None
添加到了错误的一边。我强烈主张学习[:,None]
语法。
一旦数组都是2d并且匹配正确的维度,连接就很容易。