python归一化和反归一化

归一化和反归一化是在数据处理和机器学习中常用的技术,用于将数据转换为特定的范围或原始的数据范围。在Python中,有多种方法可以实现归一化和反归一化操作。

归一化是将数据缩放到特定的范围内,常见的方法有Min-Max归一化和Z-score归一化。

Min-Max归一化通过对原始数据进行线性变换,将数据缩放到[0, 1]的范围内。下面是一个示例代码:

import numpy as np

def min_max_normalize(data):

min_val = np.min(data)

max_val = np.max(data)

normalized_data = (data - min_val) / (max_val - min_val)

return normalized_data

# 原始数据

data = np.array([1, 2, 3, 4, 5])

# 归一化后的数据

normalized_data = min_max_normalize(data)

print(normalized_data)

在上面的代码中,我们使用了NumPy库来进行数据处理。我们使用np.min()和np.max()函数找到原始数据的最小值和最大值。然后,通过将原始数据减去最小值,并除以最大值减去最小值,得到归一化后的数据。

另一种常见的归一化方法是Z-score归一化,它通过将数据转换为均值为0,标准差为1的正态分布来实现。下面是一个示例代码:

import numpy as np

def z_score_normalize(data):

mean_val = np.mean(data)

std_val = np.std(data)

normalized_data = (data - mean_val) / std_val

return normalized_data

# 原始数据

data = np.array([1, 2, 3, 4, 5])

# 归一化后的数据

normalized_data = z_score_normalize(data)

print(normalized_data)

在上面的代码中,我们首先使用np.mean()和np.std()函数计算原始数据的均值和标准差。然后,通过将原始数据减去均值,并除以标准差,得到归一化后的数据。

反归一化是将归一化后的数据恢复到原始的数据范围。反归一化的方法与归一化的方法相对应。

下面是一个示例代码,用于将归一化后的数据反归一化回原始数据范围:

import numpy as np

def min_max_denormalize(normalized_data, min_val, max_val):

denormalized_data = normalized_data * (max_val - min_val) + min_val

return denormalized_data

# 归一化后的数据

normalized_data = np.array([0.0, 0.25, 0.5, 0.75, 1.0])

# 原始数据的最小值和最大值

min_val = 1

max_val = 5

# 反归一化后的数据

denormalized_data = min_max_denormalize(normalized_data, min_val, max_val)

print(denormalized_data)

在上面的代码中,我们通过将归一化后的数据乘以原始数据的范围,并加上最小值,得到反归一化后的数据。

通过合理地插入归一化和反归一化的代码,我们可以在文章中提升这些技术的密度,同时避免过度使用。这样可以使读者更好地理解和应用这些技术。

千锋教育IT培训课程涵盖web前端培训Java培训、Python培训、大数据培训软件测试培训物联网培训云计算培训网络安全培训、Unity培训、区块链培训、UI培训影视剪辑培训全媒体运营培训等业务;此外还推出了软考、、PMP认证、华为认证、红帽RHCE认证、工信部认证等职业能力认证课程;同期成立的千锋教研院,凭借有教无类的职业教育理念,不断提升千锋职业教育培训的质量和效率。

申请14天超长免费试听资格
获取500G教程资料
姓名
电话
课程
立即申请