我有以下形状的4个数组:

     X         pred1    pred2   pred3
(46020, 369) (46020,) (46020,) (46020,)


我正在尝试将最后3个列连接到X。
例如,如果我这样做:

array_pack = np.column_stack((X, pred1, pred2, pred3))


它给我一个错误:


  ValueError:除之外的所有输入数组维
  串联轴必须完全匹配


我做错了什么?
(46020,)形状的数组应该像(46020,1)吗?

最佳答案

您可以在pred1,pred2和pred3上使用numpy's atleast_2d() method以确保数组至少为二维,即

import numpy as np

X = np.random.rand(46020,369)
pred1 = np.random.rand(46020)
pred2 = np.random.rand(46020)

print X.shape,pred1.shape,pred2.shape


(46020,369)(46020,)(46020,)

然后,您可以使用np.vstack连接数组。

# concatenate
X_new = np.vstack(np.atleast_2d(X.T,pred1,pred2)).T
print X_new.shape


(46020,371)

07-22 06:50