numpy下大作业
作业数据说明
本次练习使用 鸢尾属植物数据集.\iris.data,在这个数据集中,包括了三类不同的鸢尾属植物:Iris Setosa,Iris Versicolour,Iris Virginica。每类收集了50个样本,因此这个数据集一共包含了150个样本。
sepallength:萼片长度
sepalwidth:萼片宽度
petallength:花瓣长度
petalwidth:花瓣宽度
- 导入鸢尾属植物数据集,保持文本不变。
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
- 求出鸢尾属植物萼片长度的平均值、中位数和标准差(第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)
- 创建一种标准化形式的鸢尾属植物萼片长度,其值正好介于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)
- 找到鸢尾属植物萼片长度的第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)
- 把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)
- 在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)))
- 筛选具有 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)]
- 选择没有任何 nan 值的 iris_data行
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
iris_data.dropna(axis=0, how='any', inplace=True)
- 计算 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)
- 找出iris_data是否有任何缺失值
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
iris_data.isna().sum()
- 在numpy数组中将所有出现的nan替换为0
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
iris_data.fillna(0)
- 找出鸢尾属植物物种中的唯一值和唯一值出现的数量
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))
- 将 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)
- 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)
- 随机抽鸢尾属植物的种类,使得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)
- 根据 sepallength 列对数据集进行排序
import pandas as pd
iris_data = pd.read_excel('.\iris.xlsx')
a = iris_data.sort_values(by = 'sepallength')
print(a)
- 在鸢尾属植物数据集中找到最常见的花瓣长度值(第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)
- 在鸢尾花数据集的 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