Python数据分析基础教程-课后思考练习答案.docx





《Python数据分析基础教程-课后思考练习答案.docx》由会员分享,可在线阅读,更多相关《Python数据分析基础教程-课后思考练习答案.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、python数据分析基础教程课后思考练习答案第一章数据分析概述1 .简述数据的概念,数据、信息和知识三者之间的关系。参见:教材1.1.1数据的概念2 .数据分析:是指用适当的统计分析方法对收集来的大量原始数据进行分 析,为提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。数据分析步骤如下: 问题定义 数据采集 数据预处理 数据探索 数据可视化 预测模型 评估模型 部署解决方案3 .数数据的获取方式有:从企业管理数据库中调取相关业务数据。到特定的网站上去下载一些科研机构、企业、政府开放的公开数据集。编写网页爬虫,去收集互联网上的数据。4 .为什么要进行数据预处理?数据预处理包括哪些方面
2、?数据预处理就是将数据采集所获得的原始数据,经过数据清洗和数据转换 后,将原始数据转变为“干净”的数据。数据预处理包括数据清洗和数据转换。5 .数据可视化作用:通过视觉化呈现数据的方式,不仅能快速抓住要点信息,而且,还可以揭示通过简单统 计不能观察到的模式和结论。6 .数据分析具有三大作用:第一:现状分析。第二:原因分析。第三:预测分析。数组进行重复操作,而repeat。函数是对数组中的每个元素进行重复操作。9.在NumPy中,可以通过unique ()函数找出数组中去重后的元素并返回已 排序的数组,从而实现去除数组中重复数据的目的。二.编程题1 .代码如下# - coding: UTF-8
3、import numpy as np a =625,0,1,3,4,7,8,9 b =2,卬,3,157,5.9 arr_a = np. array (a) print,第 1 个数组:arr_a) print,第1个数组的去金(去重后的值)数组:,) arr_a_u = np.unique(arr_a) print(arr_a_u) arr_b = np.array(b)print,第 2 个数组:1arr_b)print,第2个数组的去金(去重后的值)数组:,) arr_b_u = np.unique(arr_b) print(arr_b_u)print,返回主重后的值的重复数量:,)ar
4、r_a_u, u_a_inverse = np.unique(arr_a, return_counts=True) print(u_a_in verse)arr_b_u, u_b_inverse 二 np.unique(arr_b, return_counts=True) print(u_b_inverse)2 .代码如下 data_date. csv文件中数据 date20-01-201902-02-201903-04-2018# - coding: utf-8 -*- import numpy as np import datetimedate = np.loadtxt(!data_dat
5、e.csvdtype=np.str,skiprows=l) listl =for i in date.tolist(): y = int(i6:10) m = int(i3:5) d = int(i0:2) a = datetime.date(y,m,d) week = a.isoweekday()list 1 .append( week) print(listl)arr_week = np.array(listl) print(arr_week)3.代码如下# - coding: UTF-8 import numpy as np a =1.13.3,5.5,7.7,9.9 b = 0.0,2
6、.2,44,6.6,8.8 arr_a = np. array (a) print(arr_a) cl = arr_aarr_a6 c2 = arr_aarr_a 绑定(binding)或堆叠(stacking)。可使用 concat()函 数。合并重叠数使用是combine_first ()函数,该函数的作用是用函数参数对象 中的数据为函数调用对象的缺失数据“打补丁”。即填充函数调用对象中的数据 缺失值。6 .字段拆分是按照固定的字符,拆分已有的字符串。字符分割函数有正序 分割列split ()函数和逆序分割列rsplit ()函数。字段抽取是根据已知列数据的 开始和结束位置,抽取出新的列。
7、字段抽取采用slice。函数。记录抽取是指根据一定的条件,对数据进行抽取。记录抽取函数的语法如下:dataframcondition,其中,condition为过滤条件。函数返回值是 DataFramo7 .重塑层次化索引,使用stack。函数会将数据从”表格结构“变成”花括号结 构“,即将其行索引变成列索引,反之,unstack()函数将数据从“花括号结构“变成” 表格结构“,即要将其中一层的列索引变成行索引。8 .利用映射实现数据转换的过程:首先创建映射关系,例如,创建字典fruits用于指明水果标识和水果名称 的映射关系,然后运用replace。函数,通过fruits映射关系来实现元素的
8、替 换;或是利用map ()函数,通过构建fruits映射关系来实现元素的添加。9 .使用join。函数可以将字符串、元组、列表中的元素以指定的字符(分 隔符)连接生成一个新的字符串。使用split。函数,可通过指定分隔符对字符串进行拆分,使用replace。 函数可将字符串中的old (旧字符串)替换成new(新字符串),使用find。函数 可查找子字符串,若找到返回从0开始的下标值,若找不到返回T。第9章 机器学习库scikit-learn入门一、简答题1 .机器学习是人工智能的一种类型,从广义上来说,机器学习是一种能够 赋予机器学习的能力,这种学习能力是不需要通过编程来实现的。但从实践的
9、意 义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测未知 属性的一种方法。机器学习的基本流程如图9-2所示。2 .机器学习的问题分为监督学习和非监督学习两大类。督学习的算法有线 性回归、逻辑回归、神经网络和SVM (支持向量机),常见的非监督式学习算法 有聚类算法。3 . scikit-learn 的简称为 sklearn, scikit-learn 库是面向 Python 的免 费机器学习库。sklearn不仅包含有分类、回归、聚类算法,如SVM、随机森林、 k-means等,而且还包含有降维、模型选择和数据预处理等机器学习算法。 sklearn支持NumPy和SciPy数
10、据结构,以及Matplotlib库。4 .在sklearn中的数据表示的最佳方式就是数据表。一个基本的数据表就 是一个二维数据网格,其中行表示数据集的各个元素,也称为样本,列表示这些 元素(样本)的特定定量信息。在scikit-learn模型中,数据除了特征矩阵X 之外,通常还使用标签或目标数组。5 .在机器学习中,所谓特征归一化,就是将各特征的数值进行缩放,使特 征的数值大小范围转换为相同的区间。在机器学习中,进行特征归一化原因是在同一个样本中,由于各特征的评价 指标不同,往往会使各特征具有不同的量纲和量纲单位,从而造成各特征的数值 大小范围不一致。为了消除指标之间的量纲影响,需要对数据进行
11、归一化处理, 以解决数据指标之间的可比性问题。6 .在scikit-learn中,最常用的特征归一化方法有MinMaxScaler()和 StandardScaler () 0实现特征归一化具体参见示例代码example9-7. py和示例代 码 example9-8. py。7 .使用scikit-learn进行机器学习的流程:首先数据清洗,准备好数据集, 然后根据机器学习问题选择相应的模型,并进行调整参数训练和测试模型。8 .超参数是指在模型开始学习过程之前人为预先定义的参数,而不是通过 训练得到的参数数据。通过调整超参数来训练模型的过程称为调参。调参就是寻找k取多少值时为最优值。寻找最优
12、超参数的方法,一种是依靠 经验取值,另一种是依靠实验确定,如通过交叉验证(cross_validation)来验 证模型优劣。9 .交叉验证的原理:10 先将整个数据集分为训练集和测试集两部分。11 用不重复抽样将训练集的数据随机分为k份。12 k-1份数据用于模型训练,剩下那一份数据用于验证模型。重复第三步k次,并保证每重复一次所选择的验证集和训练集是不相同 的。重复k次后将得到k个模型和它的评估结果。第10章电影数据分析项目一.编程题1 .代码如下:# - coding: utf-8 -*-import pandas as pdimport matplotlib.pyplot as pit
13、#加载数据movies_df = pd.read_csv(,d:/data/movie_metadata.csvencoding=MGBKH)column_null_number = movies_df.isnull().sum()movies_dfLnonull = movies_df.dropna()movies_dfLnew = movies_dCnonull.drop_duplicates(keep=tfirstt)movies_dfLnew.describe()#第1题plt.scatter(x= movies_dfLnew.duration,y= movies_diLnew.mov
14、ie_facebook_likes)plt.xlabelCuration*)plt.ylabel(f movie_facebook_likes1)plt.title(,duration&likes,)plt.savefig(,d:/data/duration_likes.png,)plt.showQ2至6题代码如下:# -*- coding: utf-8 -*-import pandas as pdimport matplotlib.pyplot as pit#加载数据movies_df = pd.read_csv(,d:/data/movie_metadata.csvencoding=MGB
15、KH)column_null_number 二 movies_df.isnull().sum()movies_dfLnonull = movies_df.dropna()movies_dfLnew = movies_dfLnonull.drop_duplicates(keep=Tfirst,)movies_dfLnew.describe()#第2题movie_score_20 = movies_d_new.sort_values(,imdb_score,ascending=False).head(20)result = mo v ie_score_20 1 dir ector_nameT,T
16、imdb_score1 print(result)#第3题director_group 二 movies_df_new.groupby(,director_name!).size()group_head_10 = director_group.sort_values(ascending=FaIse).head(10)print(group_head_ 10)#第4题movie_grose_10 = movies_dfLnew.sort_values(,gross,ascending二False). head( 10)print(mo vie_grose_ 10 1 director_name!
17、,1 gross *)#第5题movie_grose_5 = movies_d fLnew.sort_values(gross,ascending=False).head(5)print(movic_grosc_5 actor_l_name 1 gross)#第6题movie_actor_ 10 = movies_dfLnew .sort_values(f actor_l _facebook_likes,ascending二F alse).head(l 0)print(movie_actor_ 10f actor_l_name V actor_l_facebook_likes)7.数据分析的常
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 数据 分析 基础教程 课后 思考 练习 答案

限制150内