首页 > 其他分享 >大数据分析与可视化 之 实验03 Numpy实现数据分析

大数据分析与可视化 之 实验03 Numpy实现数据分析

时间:2023-12-30 19:56:09浏览次数:24  
标签:数据分析 03 30 df sp print np Numpy

实验03 Numpy实现数据分析

实验学时:2学时
实验类型:验证
实验要求:必修

一、实验目的

  1. 掌握Numpy的字符串函数
  2. 掌握Numpy 统计函数
  3. 掌握Numpy排序、分组、线性代数函数

二、实验要求

通过编程实现使用Numpy字符串函数进行文本处理,使用统计函数进行数据分析等常用操作。

三、实验内容

任务1. 现有股票数据文件“股票数据分析.csv”,内有“日期,开盘价,最高价,最低价,收盘价,涨跌额,涨跌幅(%),成交量(股),成交金额(元)”等字段,现要分析成交量加权平均价格、时间加权平均价格、平均价、最高价、最低价、股票收益率。用Python与第三方库Numpy编写程序实现。

任务2. 在任务1的基础上,按周汇总计算每周开盘价(monday_open)、收盘价(friday_close)、最高价(week_high)、最低价(week_low)。用Python与第三方库Numpy编写程序实现。

任务3. 现有某校参加计算机等级考试的成绩数据文件“计算机等级考试成绩.xls”,现要进行如下数据分析:
(1)统计“电子信息工程”专业缺考的人数(成绩为0或空缺视为缺考)及缺考率(缺考率=(缺考人数*100/专业总人数)%);
(2)统计“动画”专业考试通过的人数(成绩>=60视为考试通过)及通过率。
用Python与第三方库Numpy编写程序实现。

test3.py

# edcoding:utf-8
from datetime import datetime

import numpy as np
import pandas as pd

np.set_printoptions(threshold=np.inf)


def task1():
    spj, cjl = np.loadtxt(open("股票数据分析.csv", encoding='utf-8'), dtype=str, delimiter=',', usecols=(5, 8),
                          unpack=True, skiprows=1)
    spl = []
    for i in range(0, spj.size):
        try:
            spl.append(float(spj[i]))
        except:
            continue
    sp = np.array(spl)
    cj1 = []
    for i in range(0, cjl.size):
        try:
            cj1.append(float(cjl[i]))
        except:
            continue
    cj = np.array(cj1)
    print("收盘价".center(60, '='), '\n', sp)
    print("成交量".center(60, '='), '\n', cj)
    cj_mean = np.average(sp, weights=cj)
    print("成交量加权平均价格".center(30, '='), '\n', cj_mean)
    t = np.arange(len(sp))
    time_mean = np.average(sp, weights=t)
    print("时间加权平均价格".center(30, '='), '\n', time_mean)
    ave = np.mean(sp)
    print("收盘价的平均价格".center(30, '='), '\n', ave)
    sp_max = np.max(sp)
    sp_min = np.min(sp)
    print("最高收盘价、最低收盘价".center(30, '='), '\n', sp_max, sp_min)
    sp_ptp = np.ptp(sp)
    sp_mid = np.median(sp)
    sp_var = np.var(sp)
    gpsyl = np.diff(sp) / sp[:1]
    dssyl = np.diff(np.log(sp))
    print("股票收益率、对数收益率".center(30, '='), '\n', gpsyl)
    print("股票对数收益率".center(30, '='), '\n', dssyl)
    zsyl = np.where(gpsyl > 0)
    print("收益率为正的交易日".center(30, '='), '\n', zsyl)


def task2():
    rq, kpj, spj = np.loadtxt(open("股票数据分析.csv", encoding='utf-8'), dtype=np.str_, delimiter=',', usecols=(1, 2, 5),
                              unpack=True, skiprows=1)
    list_kpj = []
    list_spj = []
    kpjsum = 0
    spjsum = 0
    for i in range(0, kpj.size):
        try:
            date_str = rq[i]
            date_obj = datetime.strptime(date_str, "%Y%m%d")
            day_of_week = date_obj.weekday()
            if day_of_week == 0:
                kpjsum += float(kpj[i])
                list_kpj.append(kpjsum)
                kpjsum = 0

                spjsum += float(spj[i])
                list_spj.append(spjsum)
                spjsum = 0
            else:
                kpjsum += float(kpj[i])
                spjsum += float(spj[i])
        except:
            continue
    kp = np.array(list_kpj)
    print("每周开盘价总和:", kp)

    print("=" * 30)
    sp = np.array(list_spj)
    print("每周收盘价总和:", sp)

    print("=" * 30)
    print("最高开盘价:", np.max(kp))
    print("最低开盘价:", np.min(kp))

    print("=" * 30)
    print("最高收盘价:", np.max(sp))
    print("最低收盘价:", np.min(sp))


def task3():
    df = pd.read_csv("计算机等级考试成绩.csv")

    missing_exam = df[(df['成绩'] == 0) | df['成绩'].isnull()]
    missing_count = len(missing_exam)
    total_count = len(df[df['专业'] == '电子信息工程'])
    missing_rate = (missing_count / total_count) * 100

    pass_count = len(df[(df['专业'] == '动画') & (df['成绩'] >= 60)])

    print(f"电子信息工程专业缺考人数: {missing_count}")
    print(f"电子信息工程专业缺考率: {missing_rate:.2f}%")
    print(f"动画专业考试通过人数: {pass_count}")


if __name__ == '__main__':
    task1()
    task2()
    task3()

标签:数据分析,03,30,df,sp,print,np,Numpy
From: https://www.cnblogs.com/IvanKK/p/17936722

相关文章

  • *035共情营邱月帮-第17次课(周六晚上-AB对练-)-20231230
      20221212--20221230期间每周一、四、五上正课,三、六是对答疑、对练课。 打开心灵,改变从自己开始,一起抱团取暖。《相信相信的力量》----------------------------------------------------------------------------------------------------------------(周六)-202312......
  • 大数据分析与可视化 之 实验04 Pandas基础
    实验04Pandas基础实验学时:2学时实验类型:验证实验要求:必修一、实验目的1.掌握pandas系列、数据帧和面板的使用2.掌握pandas基本功能和操作二、实验要求Pandas程序的运行步骤。2.pandas的数据结构3.pandas系列、数据帧和面板pandas基本功能和操作三、实验内容任务1.......
  • 大数据分析与可视化 之 实验01 Python爬虫
    实验01Python爬虫实验学时:2学时实验类型:验证实验要求:必修一、实验目的理解爬虫技术掌握正则表达式、网络编程掌握re、socket、urllib、requests、lxml模块及其函数的使用二、实验要求 分析所需爬取信息网页的源代码,使用re、socket、urllib、requests、lxml模块及其函......
  • 03.软件测试流程
    测试左移:左移是往测试之前的开发阶段移测试团队在软件开发周期早期就开始介入对代码进行测试从发现bug到预防bug测试左移-质量保障手段:代码评审(codereview)代码审计单元测试自动化冒烟测试研发自测测试右移:右移是往发布之后移产品上线后进行线上监控测试右移-线上......
  • 03光通信之HDMI视频回环传输
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述        通过前文中实验的学习,相信读者已经掌握了7SeriesFPGAsTransceiverswizard这个IP......
  • 【Python数据爬取课程设计】数据爬取—京东手机品牌信息数据爬取和数据分析与可视化
    一、选题的背景随着互联网的快速发展,大数据已经成为各行各业决策的重要依据。在电商领域,京东作为国内领先的电商平台,积累了大量的用户购买数据。这些数据中蕴含着丰富的品牌信息,对于手机品牌来说,分析这些数据可以帮助他们更好地了解市场趋势、消费者需求以及竞品情况。然而,目......
  • 【Python爬虫课程设计】--股票数据爬取+数据分析
    一、选题课程背景  随着互联网技术的发展和信息爆炸的时代,人们对于获取和分析海量数据的需求日益增长。股票市场作为全球经济的重要风向标,其数据信息的获取和分析对于投资者、研究人员以及企业决策者具有重要的参考价值。然而,传统的股票数据分析方法往往受到数据来源限制和数据......
  • [软件测试] 03 白盒 基本路径测试 习题
    提示:篇幅较长,可以使用Ctrl+F,在页面中快速查询关键词(或者你要找的题目)并跳转到指定的位置。关键词:白盒测试,基本路径测试,独立路径,环复杂度单选题基本路径测试是属于(D)。A.黑盒测试方法且是动态测试B.白盒测试方法且是静态测试C.黑盒测试方法且是静态测试D.白盒测试......
  • [软件测试] 03 白盒 基本路径测试 习题
    提示:篇幅较长,可以使用Ctrl+F,在页面中快速查询关键词(或者你要找的题目)并跳转到指定的位置。关键词:白盒测试,基本路径测试,独立路径,环复杂度单选题基本路径测试是属于(D)。A.黑盒测试方法且是动态测试B.白盒测试方法且是静态测试C.黑盒测试方法且是静态测试D.白盒测试......
  • 【python爬虫课程设计】达多多抖音电商——爬虫+大数据分析可视化
    一、选题背景随着社交媒体的发展和智能手机的普及,抖音已经成为了全球最受欢迎的短视频平台之一。越来越多的用户通过抖音平台进行商品的选购和交易,使得抖音电商成为了一个热门的话题。因此,通过对抖音电商的爬虫分析,可以深入了解用户的购物偏好、热门商品和行业趋势,为电商平台和品......