python数据分析与可视化(第2版)——3.8本章实训

#3.8本章实训
#求花瓣长度均值最大的品种和花瓣长度方差最小的品种
#导入模块
import numpy as np
import csv
#获取数据
iris_data=[]
with open("D:\python test\iris.csv") as csvfile:
    csv_reader=csv.reader(csvfile)
    birth_header=next(csv_reader)
    for row in csv_reader:
        iris_data.append(row)   #循环遍历每一行,将每一行的数据都加到列表中
iris_data    #输出列表
#数据清除:去掉索引号
iris_list=[]
for row in iris_data:
    iris_list.append(tuple(row[1:]))  #对元组切片并将其加入到列表中
iris_list   #输出列表
#创建数据类型
datatype=np.dtype([("Sepal.Leng",float),
                  ("Sepal.Width",float),
                  ("Petal.Leng",float),
                  ("Petal.Width",float),
                  ("Species",np.str_,40)])
print(datatype)
#创建二维数组
iris_data_array=np.array(iris_list,dtype=datatype)
print(iris_data_array)    #输出二维数组
#取出花瓣长度和种类放入一个列表
petal_species=iris_data_array[["Petal.Leng","Species"]]
petal_species
#等级去重
petal_species_unique=np.unique(petal_species["Species"])
#用list来存放每种品种的均值和方差,便于后面转为array和采用sort函数
species_mean_var_list=[]   #创建一个空列表
#针对每个品种,采用np.mean和np.var函数
for i in petal_species_unique:
    mean=np.mean(petal_species[petal_species["Species"]==i]["Petal.Leng"])  #求平均值
    var=np.var(petal_species[petal_species["Species"]==i]["Petal.Leng"])    #求方差
    species_mean_var_list.append((i,mean,var))   #将种类和所求的平均值、方差加到列表中
print(species_mean_var_list)
#将列表转为ndarry
datatype=np.dtype([("Species",np.str_,40),("mean",float),("var",float)])
species_mean_var_array=np.array(species_mean_var_list,dtype=datatype)
print(species_mean_var_array)
#找出所有品种中花瓣长度均值最大的品种和方差最小的品种
print("花瓣长度均值最大的品种:",np.sort(species_mean_var_array,order="mean")[-1])
print("花瓣长度方差最小的品种:",np.sort(species_mean_var_array,order="var")[0])

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值