信息技术 必修一 第三章 知识梳理(使用软件:幕布)

文字稿:
● 第三章 数据处理与应用
● 第一节 数据采集、整理与安全
● 一、数据采集
● 1、传感数据采集
● 传感数据是由传感设备收集和测量的数据
● 2、互联网数据采集
● 互联网数据采集是指利用互联网搜索引擎技术实现有针对性、行业性的数据抓取,并按照一定规则和筛选标准进行数据归类,最终形成数据库文件的一个过程
● (1)获取网页
● 获取网页的工作主要是获取网页的源代码
● 获取源代码的关键是构造一个请求并发送给服务器,然后在接收到服务器的响应后将其解析出来
● (2)解析网页
● 获得网页的源代码后,接下来就是分析网页源代码,从中提取我们想要的数据
● 解析网页并从中提取信息,可以使杂乱的数据变得条理清晰,以便后续处理和分析数据
● (3)保存数据
● 保存形式
● 文件存储
● 数据库存储
● 网络存储
● 网页爬取与解析
● (1)网页请求过程
● 客户端 —发送请求→ 服务器
● 客户端 ← 响应请求 —服务器
● (2)网页请求方式
● 导入Requests库:
● import requests
● 以GET方式获取所需网页源代码的Python程序代码:
● import requests
● #导入Requests库
● url='http://www.***.cn/'
● #确定请求对象
● html=requests.get(url)
● #用GET方式获取网页数据
● html.encoding="utf-8"
● #用UTF-8文本编码
● print(html.text)
● #输出网页的源代码
● (3)网页解析
● 导入Beautiful Soup库:
● from bs4 import BeautifulSoup
● 解析:
● sp=BeautifulSoup(源代码,'html.parser')
● 获取网页<title>内容的Python程序代码:
● import requests
● #导入Requests库
● from bs4 import BeautifulSoup
● #导入Beautiful Soup 库
● url='http://www.***.cn/'
● #确定请求对象
● html=requests.get(url)
● #用GET方式获取网页数据
● html.encoding="utf-8"
● #用UTF-8文本编码
● sp=BeautifulSoup(html.text,'html.parser')
● #解析源代码
● title=sp.select("title")
● #用select属性抓取title数据
● print(title.text)
● #输出title数据
● (4)数据存储
● 将所抓取的数据存储到本地的TXT文件中,只需加上三行代码:
● with open('title.txt',"a+") as f:
● f.write(title)
● f.close()
● 【补充】:
● 读一行:print(f.readline())
● 换行:f.write('\n')
● Beautiful Soup库常用的属性和方法:
● title
● 返回网页标题
● text
● 返回去除所有HTML标签后的内容
● find()
● 返回第一个符合条件的标签,例如sp.find("a")
● find_all()
● 返回所有符合条件的标签,例如sp.find_all("a")
● select()
● 返回指定CSS样式(如id或class)的内容,例如sp.select("#id")可实现通过标签的id抓取,sp.select(".classname")可实现通过标签的类名抓取
● 二、数据整理
● 安装Pandas库:
● pip install pandas
● 导入Pandas库:
● import pandas as pd
● 1、检测与处理重复值
● 基本语法
● pandas.DataFrame(Series).drop_duplicates(self,subset=None,keep='first',inplace=False)
● 常用参数及其说明
● subset
● 接收字符串或序列,表示进行去重的列,默认为None,表示全部列
● keep
● 接收特定字符串,表示重复时保留第几个数据:first,保留第一个,默认为first;last,保留最后一个;False,只要有重复都不保留
● inplace
● 接收bool型数据,表示是否在原表上进行操作,默认为False
● (1)分析数据
● (2)确定方法
● (3)编程与调试
● 具体代码:
● import pandas as pd
● df=pd.read_csv('test.csv',encoding="ANSI")
● #读取test.csv文件
● mydf=df.drop_duplicates(subset=['bike_id','datetime'],keep='first',inplace=True)
● #去除bike_id和datetime的重复数据
● print(df)
● 2、检测与处理缺失值
● 基本语法
● pandas.DataFrame.dropna(self,axis=0,how='any',inplace=False)
● 常用参数及其说明
● axis
● 接收0或1,表示轴向;0为删除观测记录(行),1为删除特征(列),默认为0
● how
● 接收特定字符串,表示删除的形式:any表示只要有缺失值存在就执行删除操作,默认为any;all表示当且仅当全部为缺失值才执行删除操作
● inplace
● 接收bool型数据,表示是否在原表上进行操作,默认为False
● (1)分析数据
● (2)确定方法
● (3)编程与调试
● 具体代码:
● import pandas as pd
● df=pd.read_csv('test.csv',encoding="ADSI")
● #读取test.csv文件
● mydf=df.dropna(axis=0,inplace=True)
● #处理缺失值,按行删除
● print(df)
● 3、检测与处理异常值
● 创建DataFrame(二维数据结构)的语法:
● 数据变量=pd.DataFrame(数据类型)
● 举例应用:
● datas=[[969.2,53.9],[602.9,33.5],[208,11.6],[13.6,0.8]]
● indexs=["轨道交通","公共汽/电车","出租车","轮渡"]
● columns=["日均客运量(万人次)","占公共交通日均客运总量(%)"]
● df=pd.DataFrame(datas,columns=columns,index=indexs)
● 读取DataFrame一个列数据的语法:
● df[列标题]
● 读取两个以上列数据的语法:
● df[[列标题1,列标题2……]]
● 4、数据读取与存储
● (1)文本文件的读取
● 读取CSV文件语法:
● pandas.read_csv(filepath,sep=',',header='infer',names=None,index_col=None,dtype=None,encoding=utf-8)
● 常用参数及其说明
● filepath
● 接收字符串,表示文件路径,无默认值
● sep
● 接收字符串,表示分隔符,默认为“,"
● header
● 接收int型数据,表示将某行数据作为列名,默认为infer,表示自动识别
● names
● 接收数组,表示列名,默认为None
● dtype
● 接收字典,表示写入的数据类型,默认为None
● (2)文本文件的存储
● 基本语法:
● DataFrame.to_csv(path_or_buf=None,sep=',',na_rep=",columns=None,header=True,index=True,index_label=None,mode='w',encoding=None)
● 常用参数及其说明
● path_or_buf
● 接收字符串,表示文件路径,无默认值
● sep
● 接收字符串,表示分隔符,默认为"."
● na_rep
● 接收字符串,表示缺失值,默认为空
● columns
● 接收列表,表示写出的列名,默认为None
● header
● 接收bool型数据,表示是否将列名写出,默认为True
● index
● 接收bool型数据,表示是否将行名(索引)写出,默认为True
● index_label
● 接收序列,表示索引名,默认为None
● mode
● 接收特定字符串,表示数据写入模式,默认为"w"
● encoding
● 接收特定字符串,表示存储文件的编码格式,默认为None
● 三、数据安全
● 1、数据安全意识
● 2、数据安全防护
● (1)数据加密
● (2)数据脱敏
● (3)访问控制
● (4)数据备份
● (5)异地容灾
● 第二节 数据分析与可视化
● 一、数据分析
● 数据分析是指使用适当的分析方法对采集和整理后的数据加以详细研究,提取有用的信息和形成概括总结的过程。
● 1、数据分析基本方法
● (1)对比分析法
● 对比分析法是指将两个或两个以上的数据进行比较,分析它们的差异,从而揭示这些数据隐含的事物发展变化或差距,并且可以准确、量化地表示出这种变化或差距
● (2)平均分析法
● 平均分析法是利用平均数指标来反映某一特征数据总体在一定时间、地点条件下的一般水平
● 通过特征数据的平均数指标,呈现事物目前所处的位置和水平,进而对不同时期、不同类型单位的平均数指标进行对比,明示事物的发展趋势和变化规律
● (3)结构分析法
● 结构分析法是通过计算各个部分占总体的比重,进而分析某一总体现象的内部结构特征、总体的性质、总体内部结构随时间推移而表现出的变化规律性
● 各个部分占总体的比重即为结构指标,总体中各结构指标总和为100%
● 2、数据分析常用工具
● (1)电子表格软件
● 电子表格软件是一种以表格形式组织、分析数据的计算机软件,它以直观的表格形式进行数据分析,具有“所见即所得”的特点
● 功能
● 表格制作
● 统计计算
● 图表处理
● (2)在线数据分析平台
● 在线数据分析平台是在网络环境下对所采集的数据进行实时分析的一种交互式数据服务平台
● 可通过与数据源的实时连接来获取最新数据,提供实时数据分析结果
● 也可根据用户的数据分析计划实施数据分析,提供针对性的分析结果
● 提供简单易用交互界面,集成了多种数据分析功能,可使用户更方便地获取数据分析结果
● (3)数据分析语言
● Python语言
● Numpy库
● sum()
● mean()
● min()
● max()
● Pandas库
● value_counts()
● R语言
● 统计学领域
● MATLAB语言
● 工程计算等领域
● 二、数据可视化
● 数据可视化是将数据以图形化方式呈现,从而能够清晰、有效地传达与沟通信息
● 1、数据可视化的基本工具
● 安装Matplotlib库/Numpy库
● pip install matplotlib
● pip install numpy
● 引入Matplotlib库/Numpy库
● import matplotlib.pyplot as plt
● import numpy as np
● 流程
● 创建画布与创建子图
● plt.figure()
● 创建一张空白画布,可指定画布大小、像素
● figure.add_subplot()
● 创建并选中子图,可指定子图的行数、列数和选中图片的编号
● 添加画布内容
● plt.title()
● 在当前图形中添加标题,可指定标题名称、位置、颜色、字体大小等参数
● plt.xlabel()
● 在当前图形中添加x轴名称,可指定位置、颜色、字体大小等参数
● plt.ylabel()
● 在当前图形中添加y轴名称,可指定位置、颜色、字体大小等参数
● plt.xlim()
● 指定当前图形x轴范围,只能确定一个数值区间,无法使用字符串标识
● plt.ylim()
● 指定当前图形y轴范围,只能确定一个数值区间,无法使用字符串标识
● plt.xticks()
● 指定x轴刻度的数目与取值
● plt.yticks()
● 指定y轴刻度的数目与取值
● plt.legend()
● 显示当前图形的图例,可指定图例的大小、位置、标签
● 保存和显示图形
● plt.savefig()
● 保存绘制的图形,可指定图形的分辨率、边缘的颜色等参数
● plt.show()
● 在本机显示图形
● 举例
● 绘制y=x²和y=x⁴在[0,1.1)上的图像
● 编程代码
● import numpy as np
● import matplotlib.pyplot as plt
● data=np.arange(0,1.1,0.01)
● #在[0,1.1)区间内,以0.01为间隔,创建一维数组
● plt.title('lines')
● #添加标题
● plt.xlabel('x')
● #添加x轴的名称
● plt.ylabel('y')
● #添加y轴的名称
● plt.xlim((0,1))
● #确定x轴的范围
● plt.ylim((0,1))
● #确定y轴的范围
● plt.xticks([0,0.2,0.4,0.6,0.8,1])
● #确定x轴刻度
● plt.yticks([0,0.2,0.4,0.6,0.8,1])
● #确定y轴刻度
● plt.plot(data,data**2)
● #添加y=x^2曲线
● plt.plot(data,data**4)
● #添加y=x^4曲线
● plt.legend(['y=x^2','y=x^4'])
● #添加图例
● plt.show()
● #显示图形
● 2、常用的数据分析图
● (1)分析特征间的关系
● 散点图
● 主要用于分析特征间的相关关系
● 又称散点分布图,为一一个特征为横坐标,以另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征间统计关系的一种图形,值由点在图中的位置表示
● 提供信息
● 特征之间是否存在数值或数量的关联趋势,以及关联趋势是线性的还是非线性的
● 若某一个点或某几个点偏离大多数点,则这些点就是离群值,通过散点图可一目了然,从而可进一步分析这些离群值是否会在建模分析中产生很大的影响
● 绘制函数
● scatter()
● 语法:
● matplotlib.pyplot.scattar(x,y,s=None,c=None,marker=None,alpha=None)
● 常用参数及其说明
● x,y
● 接收数组,表示x轴和y轴对应的数据,无默认值
● s
● 接收标量或一维数组,指定点的大小,若传入一维数组,则表示每个点的大小,默认为None
● c
● 接收颜色或一维数组,指定点的颜色,若传入一维数组,则表示每个点的颜色,默认为None
● marker
● 接收特定字符串,表示绘制的点的类型,默认为None
● alpha
● 接收0~1的小数,表示点的透明度,默认为None
● 举例
● 当x∈[0,1.4)时,绘制曲线y=x²和y=x⁴的简单散点图
● 编程代码
● import numpy as np
● import matplotlib.pyplot as plt
● x=np.arange(0,1.4,0.1)
● #在[0,1.4)区间内,以0.1为间隔,创建一维数组
● plt.title('Scatter Plot')
● #设置标题
● plt.xlabel('x')
● #设置x轴标签
● plt.ylabel('y')
● #设置y轴标签
● plt.scatter(x,x**2,c='r',marker='o')
● #画散点图
● plt.scatter(x,x**4,c='g',marker='o')
● plt.legend(['y=x^2','y=x^4'])
● #设置图标
● plt.show()
● #显示所画的图
● 折线图
● 用于分析自变量特征和因变量特征之间的趋势关系
● 为一种将数据点按照顺序连接起来的图形,可看作是将散点图按照x轴坐标顺序连接起来
● 主要功能
● 查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据,同时还可以看出数量的差异和增长趋势的变化
● 绘制函数
● plot()
● 语法:
● matplotlib.pyplot.plot(x,y,color=None,linestyle='-',linewidth=0.5)
● 常用参数及其说明
● x,y
● 接收数组,表示x轴和y轴对应的数据,无默认值
● color
● 接收特定字符串,指定线条颜色,默认为None
● linestyle
● 接收特定字符串,指定线条类型,默认为"-"
● linewidth
● 接收float型数据,指定线条宽度,默认为0.5
● 举例
● 绘制“某区共享单车数据”折线图
● 编程代码
● import pandas as pd
● import matplotlib.pyplot as plt
● plt.rcParams['font.sans-serif']=['SimHei']
● #支持中文,用于正常显示中文标签
● mydf=pd.read_csv('test.csv',encoding="ANSI")
● #读取test.csv文件
● plt.title('某区图书馆附近一天的共享单车流量')
● plt.xlabel('小时')
● plt.ylabel('总计')
● ax=plt.plot(mydf['index'],mydf['count'],linewidth=2)
● #绘制折线图
● plt.xticks([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])
● plt.show()
● (2)分析特征内部数据分布与分散状态
● 柱状图
● 主要用于查看各分组数据的数量分布以及各分组数据之间的数据比较
● 为由一系列高度不等的纵向条纹或线段表示数据分布的情况
● 可较直观看出产品质量特性的分布状态,便于判断其总体质量分布情况
● 绘制函数
● bar()
● 语法:
● matplotlib.pyplot.bar(left,height,width=0.8,color=None)
● 常用参数及其说明:
● left
● 接收数组,表示x轴数据,无默认值
● height
● 接收数组,表示y轴数据,无默认值
● width
● 接收0~1之间的float型数据,指定柱状图宽度,默认为0.8
● color
● 接收特定字符串或者包含颜色字符串的数组,表示柱状图颜色,默认为None
● 饼图
● 倾向于查看各分组数据在总数据中的占比
● 为将各项的大小与各项总和的比例显示在一张“饼”中,以占“饼”的面积大小来确定每一项的占比
● 可较清晰反映出部分与部分、部分与整体间的比例关系,易于显示每组数据相对于总数的大小,且显示方式直观
● 绘制函数
● pie()
● 语法:
● matplotlib.pyplot.pie(x,explode=None,labels=None,color=None,autopct=None,pctdistance=0.6,labeldistance=1.1,radius=1)
● 常用参数及其说明:
● x
● 接收数组,表示用于绘制饼图的数据,无默认值
● explode
● 接收数组,表示指定项距离饼图圆心为n个半径,默认为None
● labels
● 接收数组,指定每一项的名称,默认为None
● color
● 接收特定字符串或者包含颜色字符串的数组,表示饼图颜色,默认为None
● autoput
● 接收特定字符串,指定数值的显示方式,默认为None
● pctdistance
● 接收float型数据,指定autopct距离饼图圆心的位置相对于半径的比例,默认为0.6
● labeldistance
● 接收float型数据,指定labels距离饼图圆心的位置相对于半径的比例,默认为1.1
● radius
● 接收float型数据,表示饼图的半径,默认为1
● 箱形图
● 主要作用是发现整体数据的分布、分散情况
● 利用数据中的五个统计量(最小值(0%)、下四分位数(25%)、中位数(50%)、上四分位数(75%)和最大值(100%))来描述数据
● 可粗略看出数据是否具有对称性以及数据分布的分散程度等信息,也可用于对数据进行异常值检测
● 绘制函数
● boxplot()
● 语法:
● matplotlib.pyplot.boxplot(x,notch=None,sym=None,vert=None,whis=1.5,positions=None,widths=None,meanline=False,labels=None)
● 常用参数及其说明:
● x
● 接收数组,表示用于绘制箱线的数据,无默认值
● notch
● 接收bool型数据,表示中间箱体是否有缺口,默认为None
● sym
● 接受特定字符串,指定异常点形状,默认为None
● vertr
● 接收bool型数据,表示图形是纵向或者横向,默认为None
● whis
● 接收float型数据,指定正常值范围,默认为1.5
● widths
● 接收标量或者数组,表示每个箱体的宽度,默认为None
● meanline
● 接收bool型数据,表示是否显示均值线,默认为False
● labels
● 接收数组,指定每一个箱形图的标签,默认为None
● positions
● 接收数组,表示图形位置,默认为None
● 第三节 数据分析报告与应用
● 一、数据分析报告的种类
● 专题分析报告
● 为对社会现象的某一方面或某一个问题进行专门研究的一种数据分析报告
● 主要作用
● 为决策者制定某项政策、解决某个问题提供决策参考和依据
● 特点
● 单一性
● 深入性
● 综合分析报告
● 为全面评价一个地区、单位、部门的业务或其他方面发展情况的一种数据分析报告
● 特点
● 全面性
● 联系性
● 日常数据通报
● 为以定期数据分析报表为依据,反映计划执行情况,并分析其影响和形成原因的一种数据分析报告
● 特点
● 进度性
● 规范性
● 时效性
● 二、数据分析报告的组成
● 标题
● 为对数据分析报告的 高度概括
● 目录
● 体现了数据分析报告的 整体结构
● 前言
● 为数据分析报告的一个 重要组成部分,主要阐述分析的 背景、 目的、 需要解决的问题、 运用的分析思路和方法、 预期的效果或结论 等
● 正文
● 为数据分析报告的 核心部分
● 结论
● 为对整个数据分析报告的 总结,应包括数据分析结果得出的 结论、 建议 和 解决问题的方案 等
● 三、数据分析报告的价值
● 分析
● 定义问题
● 逻辑结构
● 假设检验
● 分析方法
● +
● 数据
● 准确的数据
● 完整的数据
● 有意义的数据
● 数据处理技术
● +
● 报告
● 结果呈现
● 信息传递
● 快速决策
● 形成方案
● =
● 解决方案
● 问题解决
使用软件:幕布 & B站
(由于以上均为手打,难免会有疏忽,如有错误,还请在评论区中指出
(๑•̀ㅂ•́)و✧ (´▽`ʃ♡ƪ) (●'◡'●) (☆▽☆) *★,°*:.☆( ̄▽ ̄)/$:*.°★* 。 )