Python 拟合法的输入阵列

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

此代码返回预期的结果。但涉及到两种方法。我可以只使用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.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给出的建议去做,也许阅读文档会有所帮助?它确实说该函数用于获取列表、数组或类似内容。不知道你是从哪里想到在这里介绍熊猫的。