【发布时间】:2017-06-23 17:21:53
【问题描述】:
我的代码:
### Working with NaN using sklearn
import numpy as np
from sklearn.preprocessing import Imputer
### Mean strategy
imp = Imputer(missing_values='NaN', strategy='mean', axis=1)
imp.fit([1,5,9,np.NaN])
X = [1,5,9,np.NaN]
y = imp.transform(X)
print (y)
运行后,我收到以下警告消息: C:\Users\Admin\Anaconda3\lib\site-packages\sklearn\utils\validation.py:386: DeprecationWarning: Passing 1d arrays as data 在 0.17 中被弃用,并且会在 0.19 中引发 ValueError。如果您的数据具有单个特征,则使用 X.reshape(-1, 1) 重塑您的数据,如果它包含单个样本,则使用 X.reshape(1, -1) 重塑您的数据。弃用警告)
如何解决?我尝试了重塑,但它给出了错误消息: “list”对象没有“reshape”属性
请帮忙。
【问题讨论】:
-
你应该在这里创建一个数组
imp.fit([1,5,9,np.NaN])更改为imp.fit(np.array([1,5,9,np.NaN]))和X = [1,5,9,np.NaN]应该是X = np.array([1,5,9,np.NaN])不确定你是否仍然需要重塑但类型至少与 sklearn 兼容 -
Stii 出现以下错误:------------------------ -------------------------------------- TypeError Traceback (最近一次调用最后一次)
in () 3 from sklearn.preprocessing import Imputer 4 imp = Imputer(missing_values='NaN', strategy='mean', axis=1) ### Mean strategy ----> 5 imp.fit(np.array[1,5,9,np.NaN]) 6 #X.reshape(-1, 1) 7 X =np.array([1,5,9,np.NaN]) 类型错误: 'builtin_function_or_method' 对象不可下标
标签: python