在将pandas dataframe转换为numpy数组时重塑



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)

相关内容

  • 没有找到相关文章

最新更新