(一)前 言
对数据进行归一化处理的MAX-MIN方法的公式如下:
(二)程序设计
以下代码设计为读取一个CSV文件,对其中的数据进行归一化处理,然后绘制展示图表,待处理的数据如下图所示,属性分别为a, b, c, d, e:
编写程序:
import csv
import matplotlib.pyplot as plt
import numpy as np
with open('CSV文件位置') as file:
reader = csv.reader(file)
data = []
for item in reader:
# 将所有数据读入空列表
data.append(item)
# 获取数据标签
label = data[0]
# 删除第一行数据标签
del(data[0])
file.close()
data = np.array(data).astype(float)
# 获取数据形状
shape = data.shape
for i in range(shape[1]):
# 分别求每一类数据的最大值和最小值
max_value = np.max(data[:, i])
min_value = np.min(data[:, i])
# 对数据进行转换
for j in range(shape[0]):
data[j, i] = (data[j, i] - min_value) / (max_value - min_value)
# 绘制处理后的数据分布图
for i in range(shape[0]):
plt.plot(data[i,])
plt.title('The distrubtion of the data after normalization')
plt.xticks(np.arange(len(label)), label ,fontsize = 13)
plt.xlabel('Attribute')
plt.ylabel('Value')
plt.grid(True)
plt.tight_layout()
plt.show()
运行以上代码,显示如下:
其中每一条折线都代表一个数据实例,可以看到处理后的数据落在[0,1]区间内。
(三)总 结
在本节中我们介绍了对数据进行归一化处理的方法,有任何的疑问请在评论区留言,我会尽快回复,谢谢支持!