糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 用python解决鸢尾属植物数据集问题

用python解决鸢尾属植物数据集问题

时间:2019-10-12 09:54:33

相关推荐

用python解决鸢尾属植物数据集问题

使用鸢尾属植物数据集.\iris.data,在这个数据集中,包括了三类不同的鸢尾属植物:Iris Setosa,Iris Versicolour,Iris Virginica。每类收集了50个样本,因此这个数据集一共包含了150个样本。

求出鸢尾属植物萼片长度(Sepal.Length)的平均值、中位数和标准差:(我用的python中的spyder敲的代码)

import csvfilename=csv.reader(open('iris.csv',encoding='utf-8'))a=[]for row in filename:a.append(row[1])del a[0] #删除标题行a=list(map(float,a)) #将字符串转化为浮点型数据# print("除标题后的萼片长度:",a)#求平均数pingjun=sum(a)/len(a)print("平均数是:",pingjun)#求中位数a=sorted(a,reverse=False) #从小到大排列if (type(len(a)/2)==int): #判断有偶数个数据还是奇数个数据zhongwei=(a[len(a)/2]+a[len(a)/2+1])/2print("中位数是:",zhongwei)else:zhongwei=a[len(a)//2+1]print("中位数是:",zhongwei)#求百分位数print("第10百分位数是:",a[9])print("第80百分位数是:",a[79])#求标准差c=0for i in range(0,len(a)):b=(a[i]-zhongwei)**2c=c+bc=(c/len(a))**0.5print("标准差是:",c)

下面的这个是我的结果:

把iris_data数据集中的30个随机位置修改为np.nan值:

#修改nan值import csvimport randomimport numpy as npfilename=csv.reader(open('iris.csv',encoding='utf-8'))data=[]for row in filename:data.append(row)# print(data)s=sum(data,[]) #转为一维数组s1=random.sample(s,30)print("选取的30个数据分别是:",s1)count=0for m in range(0,len(s)):for n in range(0,len(s1)):if (s[m]==s1[n] and count<=30): #当修改到30次后跳出循环s[m]=np.nancount+=1else:breaks=np.array(s)s=s.reshape(151,6)print("修改过后的数组为:",s)

下面是修改了nan值的结果:

最后的要求就是筛选具有 sepallength(第1列)< 6.0 并且 petallength(第3列)> 1 的 iris_data行:

import csvimport numpy as npfrom itertools import chainfilename=csv.reader(open('iris.csv',encoding='utf-8'))demo=[]for row in filename:demo.append(row)demo=np.array(demo)demo=np.delete(demo,-1,axis=1) #删除最后一列demo=np.delete(demo,0,axis=0) #删除第一行demo=list(chain.from_iterable(demo)) #转化为列表demo=list(map(float,demo)) #将列表中的字符串类型转化为浮点型demo=np.array(demo) #转为矩阵demo=demo.reshape(150,5) #转为和表格一样的矩阵维度np.set_printoptions(suppress=True) #不以科学计数法显示row_index=np.logical_and(demo[:,1]<6.0,demo[:,3]>1.0) #逻辑与的应用print("满足条件的行有:",demo[row_index])

很明显可以看见一些行已经没有再展现出来:

如果觉得《用python解决鸢尾属植物数据集问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。