欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  互联网

numpy入门:大作业

程序员文章站 2022-07-02 09:10:41
numpy下大作业作业数据说明本次练习使用 鸢尾属植物数据集.\iris.data,在这个数据集中,包括了三类不同的鸢尾属植物:Iris Setosa,Iris Versicolour,Iris Virginica。每类收集了50个样本,因此这个数据集一共包含了150个样本。sepallength:萼片长度sepalwidth:萼片宽度petallength:花瓣长度petalwidth:花瓣宽度导入鸢尾属植物数据集,保持文本不变。import pandas as pdiris_da...

numpy下大作业

作业数据说明

本次练习使用 鸢尾属植物数据集.\iris.data,在这个数据集中,包括了三类不同的鸢尾属植物:Iris Setosa,Iris Versicolour,Iris Virginica。每类收集了50个样本,因此这个数据集一共包含了150个样本。
sepallength:萼片长度
sepalwidth:萼片宽度
petallength:花瓣长度
petalwidth:花瓣宽度


  1. 导入鸢尾属植物数据集,保持文本不变。
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
  1. 求出鸢尾属植物萼片长度的平均值、中位数和标准差(第1列,sepallength)
import numpy as np
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
a = np.mean(iris_data['sepallength'])
b = np.median(iris_data['sepallength'])
c = np.std(iris_data['sepallength'])
print(a)
print(b)
print(c)
  1. 创建一种标准化形式的鸢尾属植物萼片长度,其值正好介于0和1之间,这样最小值为0,最大值为1(第1列,sepallength)
import numpy as np
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
a = np.amin(iris_data['sepallength'])
b = np.amax(iris_data['sepallength'])
y = (iris_data['sepallength']-a)/(b-a)
print(y)
  1. 找到鸢尾属植物萼片长度的第5和第95百分位数(第1列,sepallength)。
import numpy as np
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
a = np.percentile(iris_data['sepallength'],[5,95])
print(a)
  1. 把iris_data数据集中的20个随机位置修改为np.nan值
import numpy as np
import pandas as pd
import random
iris_data = pd.read_excel('.\iris.xlsx')

df = iris_data['sepallength']
random.seed(20201201)
a = random.sample(range(0,150),20)
print(a)
for i in a:
    df[i] = np.nan

print(df)
  1. 在iris_data的sepallength中查找缺失值的个数和位置(第1列)
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
df = iris_data['sepallength']
print(df.isna().sum())
print(np.where(np.isnan(df)))
  1. 筛选具有 sepallength(第1列)< 5.0 并且 petallength(第3列)> 1.5 的 iris_data行
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

iris_data[(iris_data['sepallength']<5.0)&(iris_data['petallength']>1.5)]
  1. 选择没有任何 nan 值的 iris_data行
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

iris_data.dropna(axis=0, how='any', inplace=True)
  1. 计算 iris_data 中sepalLength(第1列)和petalLength(第3列)之间的相关系数
import numpy as np
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

x = iris_data['sepallength']
y = iris_data['petallength']
z = np.corrcoef(x,y)
print(z)
  1. 找出iris_data是否有任何缺失值
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

iris_data.isna().sum()
  1. 在numpy数组中将所有出现的nan替换为0
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

iris_data.fillna(0)
  1. 找出鸢尾属植物物种中的唯一值和唯一值出现的数量
import numpy as np
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

a = iris_data['species']
print(np.unique(a,return_counts=True))
  1. 将 iris_data 的花瓣长度(第3列)以形成分类变量的形式显示。定义:Less than 3 --> ‘small’;3-5 --> ‘medium’;’>=5 --> ‘large’
import numpy as np
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

df = iris_data['petallength']
bins = np.array([0.0,3.0,5.0])
inds = np.digitize(df,bins)
print(inds)

for i in range(df.size):
    if inds[i] == 1:
        df[i] = 'small'
    elif inds[i] == 2:
        df[i] = 'medium'
    else:
        df[i] = 'large'

print(df)
  1. iris_data 中创建一个新列,其中 volume 是 (pi x petallength x sepallength ^ 2)/ 3
import numpy as np
import pandas as pd
import math
iris_data = pd.read_excel('.\iris.xlsx')

x = iris_data['petallength']
y = iris_data['sepallength']
z = (math.pi*iris_data['petallength']* iris_data['sepallength']**2)/3
iris_data['new_volume'] = z
print(iris_data)
  1. 随机抽鸢尾属植物的种类,使得Iris-setosa的数量是Iris-versicolor和Iris-virginica数量的两倍
import numpy as np
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

a = iris_data['species']
b = [0.01]*50+[0.005]*100
x = np.random.choice(a,10,p = b)
print(x)
  1. 根据 sepallength 列对数据集进行排序
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

a = iris_data.sort_values(by = 'sepallength')
print(a)
  1. 在鸢尾属植物数据集中找到最常见的花瓣长度值(第3列)
import numpy as np
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

x = np.unique(iris_data['petallength'],return_counts=True)
max_value = x[0][list(x[1]).index(np.amax(x[1]))]
print(max_value)
  1. 在鸢尾花数据集的 petalwidth(第4列)中查找第一次出现的值大于1.0的位置
import numpy as np
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')

a = np.searchsorted(iris_data['petalwidth'],1.0)
print(a)

本文地址:https://blog.csdn.net/weixin_46462735/article/details/110433277

相关标签: numpy