鸢尾花数据分类:
代码:
# usr/bin/env/python3 # -*- coding:utf-8 -*- import numpy from sklearn.datasets import load_iris # 2. 从sklearn包自带的数据集中读出鸢尾花数据集data iris_data = load_iris() # 3.查看data类型,包含哪些数据 print("数据类型: ", type(iris_data)) print("包含数据: ", iris_data.keys()) # 看包含哪些数据 # 4.取出鸢尾花特征和鸢尾花类别数据,查看其形状及数据类型 iris_target = iris_data['target'], iris_data['feature_names'] print("形状及数据类型: ", iris_target) # 5.取出所有花的花萼长度(cm)的数据 iris_len = numpy.array({'length': list(len[0] for len in iris_data['data'])}) print("所有花萼长度: ", iris_len) # 6.取出所有花的花瓣长度(cm)+花瓣宽度(cm)的数据 petal_len = numpy.array(list(len[2] for len in iris_data['data'])) # 取花瓣长 petal_len.resize(30, 5) petal_wid = numpy.array(list(wid[3] for wid in iris_data['data'])) # 取花瓣宽 petal_wid.resize((30, 5)) petal_len_wid = numpy.array(dict(length=petal_len, width=petal_wid)) # 形成新数组 print("花瓣长宽: ", petal_len_wid) # 7.取出某朵花的四个特征及其类别 print("某朵花数据: ", iris_data['data'][0], iris_data['target'][0]) # 8.将所有花的特征和类别分成三组,每组50个 # 建立每种花的相应列表,存放数据 iris_setosa = [] iris_versicolor = [] iris_virginica = [] # 用for循环分类,根据观察可知当target为0时对应setosa类型,1为versicolor,2为virginica for i in range(0, 150): if iris_data['target'][i] == 0: # 种类为setosa,生成一条setosa类的鸢尾花花数据 data = iris_data['data'][i].tolist() data.append('setosa') iris_setosa.append(data) elif iris_data['target'][i] == 1: # 种类为1为versicolor,生成一条1为versicolor类的鸢尾花数据 data = iris_data['data'][i].tolist() data.append('versicolor') iris_versicolor.append(data) else: data = iris_data['data'][i].tolist() data.append('virginica') iris_virginica.append(data) # 9.生成新的数组,每个元素包含四个特征+类别 iris_result = numpy.array([iris_setosa, iris_versicolor, iris_virginica]) print("分类结果", iris_result)
截图: