如何使用MinMaxScaler归一化numpy.ndarray数组?
用MinMaxScaler实现numpy数组的0-1归一化
要把你的numpy.ndarray数组归一化到0-1区间,直接用scikit-learn的MinMaxScaler即可,注意它要求输入是二维数组,具体实现代码如下:
完整示例代码
import numpy as np from sklearn.preprocessing import MinMaxScaler # 模拟你的目标数组 your_array = np.array([-78.932495, -77.14235, -76.68105, -70.57554, -70.66422, -71.883995]) # 转换为MinMaxScaler要求的二维格式(样本数×特征数) array_2d = your_array.reshape(-1, 1) # 初始化归一化器,默认就是0-1区间,也可以显式指定feature_range=(0,1) scaler = MinMaxScaler() # 拟合并完成归一化转换 normalized_2d = scaler.fit_transform(array_2d) # 若需要转回一维数组,用flatten() normalized_array = normalized_2d.flatten() print(normalized_array)
关键说明
- 形状转换:
reshape(-1,1)把一维数组转为N行1列的二维结构,这是因为MinMaxScaler是为数据集设计的,要求每个样本占一行、每个特征占一列。 - 归一化逻辑:
fit_transform()会自动计算数组的最小值和最大值,然后通过公式(x - min_val) / (max_val - min_val)将每个元素映射到0-1区间,完全符合你的需求。 - 转回一维:如果不需要二维结果,用
flatten()可以快速还原成一维数组格式。
内容的提问来源于stack exchange,提问作者Megan
相关产品推荐
相关产品推荐

