i有一个pandas dataframe,它有4行和n列,我将其以1列的方式将其用作分类器的功能。如下所示
0 [1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
1 [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1]
2 [0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0]
3 [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0]
本列本质上是16个二进制编码功能的list
。
但是,当我将其喂给分类器时,以下错误会出现
Traceback (most recent call last):
clf.fit(X,y)
X, y = check_X_y(X, y, 'csr')
ensure_min_features, warn_on_dtype, estimator)
array = np.array(array, dtype=dtype, order=order, copy=copy)
ValueError: setting an array element with a sequence.
我想错误是因为拟合方法需要一个nxm矩阵,而其形状是
(4,)
基本上,
我想尝试将形状(4,)转换为形状(4,16)
我尝试了以下功能:
X = np.asarray(train_data['presence_vector'])
X.reshape((4,16))
X = train_data['presence_vector'].values
X.reshape((4,16))
X = train_data['presence_vector'].as_matrix()
X.reshape((4,16))
应该尝试使用通常的方式。如果可以比下面有更好的解决方案
reshaped=[]
for l in X:
reshaped.append(l)
X_new=np.array(reshaped)
print(X_new.shape)
(4, 16)