Numpy 计算男女生各科成绩统计指标

Numpy 计算男女生各科成绩统计指标

1.随机数生成六个班的考试成绩,3门考试:Python、数学、语文。每个班50人

import numpy as np
arr = np.random.randint(0,151,size = (6,50,3))
for i in range(0,6):
    print(i+1,"班成绩为\n",arr[i])

在这里插入图片描述
2.将六个班的考试成绩进行合并得到score

score = np.concatenate(arr)
score.shape
>>> (300, 3)

3.生成性别数组sex,水平叠加数组sex和score得到data

# 0 表示 女生(female);1 表示 男生(male)
sex = np.random.randint(0,2,size = (300,1))
data = np.hstack((sex,score))
data

在这里插入图片描述

4.分别计算男女生各科成绩统计指标:最小值、最大值、平均分、中位数、标准差

# 男女分组
female = np.empty(shape = (0,3))
male = np.empty(shape = (0,3))
for row in range(0,300):
    if data[row,0] == 0:
        female = np.append(female,[data[row,1:]],axis = 0)
    if data[row,0] == 1:
        male = np.append(male,[data[row,1:]],axis = 0)
print(female)
print(male)

在这里插入图片描述

# 女生各科成绩统计指标
f_score_min = female.min(axis = 0)
f_score_max = female.max(axis = 0)
f_score_mean = female.mean(axis = 0)
f_score_median = np.median(female,axis = 0)
f_score_std = female.std(axis = 0)
print("女生各科成绩统计")
print("\tPython\t数学\t语文")
print("最小值\t",f_score_min[0],"\t",f_score_min[1],"\t",f_score_min[2])
print("最大值\t",f_score_max[0],"\t",f_score_max[1],"\t",f_score_max[2])
print("平均值\t",round(f_score_mean[0],1),"\t",round(f_score_mean[1],1),"\t",round(f_score_mean[2],1))
print("中位数\t",f_score_median[0],"\t",f_score_median[1],"\t",f_score_median[2])
print("标准差\t",round(f_score_std[0],1),"\t",round(f_score_std[1],1),"\t",round(f_score_std[2],1))

在这里插入图片描述

# 男生各科成绩统计指标
m_score_min = male.min(axis = 0)
m_score_max = male.max(axis = 0)
m_score_mean = male.mean(axis = 0)
m_score_median = np.median(male,axis = 0)
m_score_std = male.std(axis = 0)
print("男生各科成绩统计")
print("\tPython\t数学\t语文")
print("最小值\t",m_score_min[0],"\t",m_score_min[1],"\t",m_score_min[2])
print("最大值\t",m_score_max[0],"\t",m_score_max[1],"\t",m_score_max[2])
print("平均值\t",round(m_score_mean[0],1),"\t",round(m_score_mean[1],1),"\t",round(m_score_mean[2],1))
print("中位数\t",m_score_median[0],"\t",m_score_median[1],"\t",m_score_median[2])
print("标准差\t",round(m_score_std[0],1),"\t",round(m_score_std[1],1),"\t",round(m_score_std[2],1))

在这里插入图片描述


版权声明:本文为weixin_44699915原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。