DataConversionWarning:当期望1d数组时传递列向量y

时间:2017-03-10 13:45:18

标签: arrays python-3.x numpy

我在运行这部分代码时一直出错:

scores = cross_val_score(XGB_Clf, X_resampled, y_resampled, cv=kf)

错误是:

  

DataConversionWarning:在1d数组时传递了列向量y   预计。请将y的形状更改为(n_samples,)   使用ravel()的示例。 y = column_or_1d(y,warn = True)

我知道这个问题有很多答案,我需要使用ravel(),但使用它不会改变任何东西!

此外,我传递给该函数的数组“y”是 a column-vector ...

请参阅:

y_resampled
Out[82]: array([0, 0, 0, ..., 1, 1, 1], dtype=int64)

当我跑步时

y_resampled.ravel()

我得到了

Out[81]: array([0, 0, 0, ..., 1, 1, 1], dtype=int64)

与我的初始变量完全相同......

另外,当我运行y_resampled.values.ravel()时,我收到一个错误,告诉我这是一个很好的数组......

Traceback (most recent call last): 
File "<ipython-input-80-9d28d21eeab5>", line 1, in <module>
y_resampled.values.ravel() 
  

AttributeError:'numpy.ndarray'对象没有属性'values'

你们中有没有人有解决方案吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

在将y_resampled编写为数据帧时,可以使用值函数。

import pandas as pd
y_resampled = pd.DataFrame(y_resampled)