numpy入门:大作业

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

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐