numpy库是标准库吗数据归一化是数据预处理的一种常用方法,可以将数据的值映射到指定的范围内,常用的方法有最小-最大规范化和Z-score标准化。下面给出这两种方法的Python代码实现:
最小-最大规范化:
python
Copy code
def min_max_scaler(data):
    """
    最小-最大规范化
    :param data: 待处理数据
    :return: 归一化后的数据
    """
    min_val = np.min(data)
    max_val = np.max(data)
    if max_val - min_val == 0:
        s_like(data)
    else:
        return (data - min_val) / (max_val - min_val)
Z-score标准化:
python
Copy code
def z_score_scaler(data):
    """
    Z-score标准化
    :param data: 待处理数据
    :return: 归一化后的数据
    """
    mean_val = np.mean(data)
    std_val = np.std(data)
    if std_val == 0:
        s_like(data)
    else:
        return (data - mean_val) / std_val
以上代码使用了numpy库,其中np.min、np.max、np.mean和np.std分别计算了数组的最小值、最大值、平均值和标准差。对于特殊情况,如分母为0时,返回全为0的数组。
使用时,只需要传入需要处理的数据,即可得到归一化后的结果。例如:
python
Copy code
import numpy as np
data = np.array([1, 2, 3, 4, 5])
min_max_data = min_max_scaler(data)
z_score_data = z_score_scaler(data)
print("原始数据:", data)
print("最小-最大规范化后的数据:", min_max_data)
print("Z-score标准化后的数据:", z_score_data)
输出结果为:
css
Copy code
原始数据: [1 2 3 4 5]
最小-最大规范化后的数据: [0.  0.25 0.5  0.75 1.  ]
Z-score标准化后的数据: [-1.26491106 -0.63245553  0.          0.63245553  1.26491106]
可以看到,数据归一化后的结果符合预期。