基于Python的数据处理:数据的归一化
- Python语言
- 2025-02-27
- 126热度
- 0评论
数据的归一化是将数组的数据全部映射到一个特定区间进行处理,在数据分析中,一般是将数组的全部数据映射到区间[0,1]。
鸢尾属植物数据集的归一化
鸢尾属植物数据集包括了三类不同的鸢尾属植物,分别是Iris Setosa、Iris Versicolour和Iris Virginica,每类收集了50个样本,每个样本描述了花萼长度、花萼宽度、花瓣长度、花瓣宽度,单位是厘米,该数据集共有150个样本。
数据集以文本格式存储,每行1个样本,共150行,每行有5列,前4列描述了样本的4个特征,第5列是鸢尾属植物名称。
例如下面的数据行:
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
…………
6.2,3.4,5.4,2.3,Iris-virginica
5.9,3.0,5.1,1.8,Iris-virginica
从给出的数据集可以看出,特征数据的数值范围基本不在区间[0,1]内,若要对该数据集进行数据分析,需要对特征数据进行归一化处理。下面将数据集的第1列做归一化处理。
# 导入numpy库
import numpy as np
# 程序入口
if __name__ == '__main__':
# 从数据集文件读取第1列特征数据
data = np.genfromtxt('iris.data',delimiter=',',dtype='float', usecols=[0])
# 获取数据集的最大值和最小值
max, min = data.max(), data.min()
# max - min作为基数对数据归一化处理
result = (data - min)/(max - min)
print(result)
代码解读
numpy库的genfromtxt()函数从文本文件读取数据集,第1个参数为文本文件的路径,支持本地和网络文件;第2个参数为为列数据字段间的分隔符;第3个参数为读入的数据类型;第4个参数设置读取的列数据。
max和min为读取数据集的最大值和最小值,并通过max-min作为基数进行数据的归一化处理。