此代码返回预期结果。但是涉及两种熊猫方法。我可以只使用一种方法还是可以从fit_transform中删除熊猫?
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
data = [-1, 2,1, 18]
scaler.fit_transform(pd.DataFrame(pd.Series(data)))
array([[0. ],
[0.15789474],
[0.10526316],
[1. ]])
更新:我尝试输入列表,但出现错误:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
data = [-1, 2,1, 18]
scaler.fit_transform(data)
# ValueError: Expected 2D array, got 1D array instead
这可行,但结果错误:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
data = [-1, 2,1, 18]
scaler.fit_transform([data])
# array([[0., 0., 0., 0.]])
答案 0 :(得分:2)
您可以直接应用fit_transform
,而无需pandas
data = np.array(data).reshape(-1,1).astype(np.float32)
scaler.fit_transform(data)
答案 1 :(得分:1)
选项1:
您可以直接从列表中创建一个数据框,并将其提供给缩放器,这将需要进行任何重塑。
scaler.fit_transform(pd.DataFrame(data))
选项2:
如果要使用numpy,
scaler.fit_transform(np.array(data)[:,np.newaxis])
或者您可以接受@Oswald的建议