现在,我将数据存储在2 x 2 numpy数组中。如果我要在数组上使用MinMaxScaler fit_transform,它将逐列对其进行归一化,而我希望对整个np数组进行归一化。反正有这样做吗?
最佳答案
从文档看来,您无法更改MinMaxScaler的轴。一种替代方法是根据文档中的MinMaxScaler定义定义缩放功能:
X_std = (X - X.min()) / (X.max() - X.min())
X_scaled = X_std * (max - min) + min
因此,您可以这样做:
import numpy as np
X = np.array([[-1, 2], [-0.5, 6]])
def min_max_scale(X, range=(0, 1)):
mi, ma = range
X_std = (X - X.min()) / (X.max() - X.min())
X_scaled = X_std * (ma - mi) + mi
return X_scaled
print(min_max_scale(X))
输出量
[[0. 0.42857143]
[0.07142857 1. ]]
基本上,您需要删除axis参数,以考虑整个数组中的最大值和最小值。