数据统计与分析基础 实验一 基本语法及运算

该实验涉及Python编程基础,包括数据输入、程序流程控制、数据统计与分析。学生通过编写程序处理学生信息,寻找特定数字序列,实现成绩到绩点转换,以及随机向量操作。实验旨在提升学生对Python的熟悉度和机器学习算法的理解,同时培养良好的编程习惯。
摘要由CSDN通过智能技术生成

实验要求

要求学生熟悉实用软件(如python、Matlab、R等)中的基本编程内容,掌握实用软件调试和运行程序的方法、面向任务编程的思想,数据统计与分析思想针对任务进行设计、编写程序,特别是掌握常见的机器学习算法的实用软件语句及各类图形图像绘制方法。要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。为保证尽量在统一安排的上机时间内完成程序设计任务,学生应事先做问题分析,并做静态检查。学生应记录实验中所遇到的问题,并写出详细的实验报告。课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源程序及实验结果。

实验目的

掌握实用软件(如python、Matlab、R等任选一种)的基本语法、基本数据类型的使用方法,掌握从键盘输入并运算基本类型的数据,熟练运用分支、循环等语句控制程序流程。

实验内容

1.编写程序,记录十名学生的信息,至少包括姓名、年龄、出生年、数据统计分析课程实验成绩,程序输出前n个学生的年龄平均值、数据统计分析课程实验成绩平均值,n为函数的输入参数。

源代码:

import numpy as np
import xlrd     #读excel
stu_name = []   #定义姓名列表
stu_age = []    #定义年龄列表
stu_year = []   #定义出生年份列表
stu_score = []  #定义分数列表
data = xlrd.open_workbook('E:\学习资料\数据统计与分析基础\实验1\student.xls')
table = data.sheets()[0]

def get():      #从文件读取10个学生的信息
    for i in range(table.nrows):
        stu_name.append(str(table.cell_value(i, 0)))
        stu_age.append(int(table.cell_value(i, 1)))
        stu_year.append(int(table.cell_value(i, 2)))
        stu_score.append(int(table.cell_value(i, 3)))

def avg(n):    #计算前n名学生的平均分数和平均年龄
    avg_age = np.mean(np.array(stu_age)[:n]) 
    avg_score = np.mean(np.array(stu_score)[:n])
    return avg_age, avg_score

def main():
    get()
    n = int(input("输入n:"))
    print("平均年龄为:%.2f" % avg(n)[0])
    print("平均成绩为:%.2f" % avg(n)[1])
    
if __name__ == '__main__':
    main()

结果截图:

 

 

2.找出1至999之间是13的倍数或者前两位数字是13的数字,输出这些数字,并统计有多少个。

源代码:

import numpy


def main():
    num = 0
    for i in range(1,1000,1):
        if i%13 == 0 or i//10 == 13:
            num += 1
            print(i)

if __name__ == '__main__':
    main()

结果截图:


 

 

3.编写成绩转化为绩点的函数,用98,93,89,73,66分别调用函数,生成对应绩点。

源代码:

import numpy

def jd(i):
    if i >= 90:
        n = 4.0
    else:
        n = (i-50)/10
    print("绩点为:",n)

def main():
    for j in range(5):
        i = int(input("请输入成绩:"))
        jd(i)

if __name__ == '__main__':
    main()

结果截图:

 

4.随机生成两个长为100且服从标准正态分布的向量,然后将两向量所有偶数位的数值对调,输出所有的4个向量(对调前的2个,对调后的2个)。

源代码:

import numpy as np

def main():
    a = np.random.randn(100)
    b = np.random.randn(100)
    print(a)
    print(b)
    for i in range(1,100,2):
        t = a[i]
        a[i] = b[i]
        b[i] = t
    print(a)
    print(b)

if __name__ == '__main__':
    main()

结果截图:

 

5、已知XYZ+YZZ=532,其中X、Y和Z为数字,编程求出X,Y和Z的值。

源代码:

import numpy

def main():
    for x in range(6):
        for y in range(6):
            for z in range(10):
                if 100*x+10*y+z+100*y+10*z+z == 532:
                    print("x=",x,"\ty=",y,"\tz=",z)

if __name__ == '__main__':
    main()

结果截图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力敲代码呀~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值