Python 拟合法的输入阵列
此代码返回预期的结果。但涉及到两种方法。我可以只使用1种方法还是从fit_transform中删除熊猫Python 拟合法的输入阵列,python,pandas,scikit-learn,Python,Pandas,Scikit Learn,此代码返回预期的结果。但涉及到两种方法。我可以只使用1种方法还是从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.1
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.]])
您可以像这样直接应用
fit\u变换
,而无需pandas
data = np.array(data).reshape(-1,1).astype(np.float32)
scaler.fit_transform(data)
备选案文1:
您可以直接从列表中创建一个数据帧,并将其馈送到定标器,这将需要任何重塑
scaler.fit_transform(pd.DataFrame(data))
备选案文2:
如果你想和numpy打交道
scaler.fit_transform(np.array(data)[:,np.newaxis])
或者你可以按照@Oswald给出的建议去做,也许阅读文档会有所帮助?它确实说该函数用于获取列表、数组或类似内容。不知道你是从哪里想到在这里介绍熊猫的。