《Python数据分析与应用_从数据获取到可视化题库及答案课后习题.docx》由会员分享,可在线阅读,更多相关《Python数据分析与应用_从数据获取到可视化题库及答案课后习题.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Python数据分析与应用_从数据获取到可视化题库及答案课后习题第1章习题一、 填空题1. 的目的在于将隐藏在一大批看似杂乱无章的数据信息集中提炼出来有用的数据。2. 中包含了conda、Python在内的超过180个科学包及其依赖项。3. Jupyter Notebook是一个支持 代码、数学方程、可视化和Markdown的Web应用程序。二、 判断题1. 数据分析是一个有目的地收集和整合数据的过程。( )2. Python是一门胶水语言,可以轻松地操作其它语言编写的库。( )3. 如果要卸载指定环境中的包,则直接使用remove命令移除即可。( )三、 选择题1. 下列选项中,用于搭接数据
2、仓库和保证数据质量的是( )。A. 数据收集 B. 数据处理C. 数据分析D. 数据展现2. 关于Anaconda的说法中,下列描述错误的是( )。A. Anaconda是一个可以对包和环境进行统一管理的发行版本。B. Anaconda包含了conda、Python在内的超过180个科学包及其依赖项C. Anaconda是完全开源的、付费的D. Anaconda避免了单独安装包时需要配置或兼容等各种问题3. 关于Anaconda的组件中,可以编辑文档且展示数据分析过程的是( )。A. Anaconda NavigatorB. Anaconda PromptC. SpyderD. Jupyter
3、 Notebook4. 下面列出的数据分析库中,用于绘制数组的2D图形的是( )。A. NumPyB. PandasC. MatplotlibD. NLTK四、 简答题1. 什么是数据分析?2. 请简述数据分析的基本过程。3. Python做数据分析有哪些优势?第2章习题一、 填空题1. 在NumPy中,可以使用数组对象_执行一些科学计算。2. 如果ndarray.ndim执行的结果为2,则表示创建的是_维数组。3. NumPy的数据类型是由一个类型名和元素_的数字组成。4. 如果两个数组的大小(ndarray.shape)不同,则它们进行算术运算时会出现_机制。5. 花式索引是NumPy的一
4、个术语,是指用整数_进行索引。二、 判断题1. 通过empty()函数创建的数组,该数组中没有任何的元素。( )2. 如果没有明确地指明数组中元素的类型,则默认为float64。( )3. 数组之间的任何算术运算都会将运算应用到元素级。( )4. 多维数组操作索引时,可以将切片与整数索引混合使用。( )5. 当通过布尔数组索引操作数组时,返回的数据是布尔数组中False对应位置的值。( )三、 选择题1. 下列选项中,用来表示数组维度的属性是( )。A. ndimB. shapeC. sizeD. dtype2. 下面代码中,创建的是一个3行3列数组的是( )。1. arr = np.arra
5、y(1, 2, 3)2. arr = np.array(1, 2, 3, 4, 5, 6)3. arr = np.array(1, 2, 3, 4)4. np.ones(3, 3)3. 请阅读下面一段程序:arr_2d = np.array(11, 20, 13,14, 25, 16,27, 18, 9)print(arr_2d1, :1)执行上述程序后,最终输出的结果为( )。A. 14B. 25C. 14, 25D. 20, 254. 请阅读下面一段程序:arr = np.arange(6).reshape(1, 2, 3)print(arr.transpose(2, 0, 1)执行上述程
6、序后,最终输出的结果为( )。A.2 50 31 4B. 1 4 0 3 2 5C.0 31 42 5D. 0 31 42 55. 下列函数或方法中,用来表示矢量化三元表达式的是( )。A. where()B. cumsum()C. sort()D. unique()四、 简答题1. 什么是矢量化运算?2. 实现数组广播机制需要满足哪些条件?五、 程序题1. 创建一个数组,数组的shape为(5,0),元素都是0。2. 创建一个表示国际象棋棋盘的8*8数组,其中,棋盘白格用0填充,棋盘黑格用1填充。第3章习题一、 填空题1. Pandas是一个基于 的Python库。2. Pandas中有两个
7、主要的数据结构分别为 和 。3. Series结构由 和 组成。4. 可以使用 和 创建一个Series对象。5. 数据排序可以分为 和 。二、 判断题1. 在DataFrame中每列的数据都可以看做是一个Series对象。( )2. 使用describe()方法会输出多个统计指标。( )3. from_arrays()方法是将元组列表转换为MultiIndex对象。( )4. read_csv()函数和read_table()函数没有区别可以随意替换使用。( )5. Series对象不存在层次化索引。( )三、 选择题1. 下列选项中,描述不正确的是( )。A. Pandas中只有Serie
8、s和DataFrame这两种数据结构B. Series是一维的数据结构C. DataFrame是二维的数据结构D. Series和DataFrame都可以重置索引2. 下列选项中,描述正确是( )。A. Series是一维数据结构,其索引在右,数据在左B. DataFrame是二维数据结构,并且该结构具有行索引和列索引C. Series结构中的数据不可以进行算术运算D. sort_values()方法可以将Series或DataFrame中的数据按照索引排序3. 下列方法中,可以将元组转换为MultiIndex对象的是( )。A. from_tuples()B. from_arrays()C.
9、 from_product()D. from_list()4. 下列选项中,哪个方法可以一次性输出多个统计指标( )。A. describe()B. mean()C. median()D. sum()5. 请阅读下面一段程序:import pandas as pdser_obj = pd.Series(range(1, 6), index=5, 3, 0, 4, 2)ser_obj.sort_index()执行上述程序后,最终输出的结果为( )。A.5 13 20 34 42 5B.0 32 53 24 45 1C.5 14 43 22 50 3D.2 54 40 33 25 1四、 简答题1
10、. 简述Series和DataFrame的特点。2. 简述什么是层次化索引。五、 程序题1. 现有如下图所示的数据,请对该数据进行以下操作:(1) 使用DataFrame创建该数据。(2) 将图中的B列数据进行按降序排序。(3) 将排序后的数据写入到csv文件,并命名为write_data.csv。第4章习题一、 填空题1. 数据清洗的目的是让数据具有 、 、 、 、 、等特点。2. 产生缺失值或空值的原因有 和 。3. stack()方法可以将 转换为 。 4. concat()函数的堆叠方式有 和 ,连接方式有 和 。5. 拉依达原则在检测异常值时必须保证数据遵守 。二、 判断题1. re
11、name()方法可以重命名索引名。( )2. drop_duplicated()方法可以删除重复值。( )3. 在箱形图中超出上界和下界的值称为异常值。( )4. 当一个具有多层次索引的DataFrame对象经过stack()后,会返回一个Series对象。( )5. 在使用merge()函数进行合并时,不需要指定合并键。( )三、 选择题1. 下列选项中,描述不正确的是。( )A. 数据清洗的目的是为了提高数据质量B. 异常值一定要删除C. 可使用drop_duplicates()方法删除重复数据D. concat()函数可以沿着一条轴将多个对象进行堆叠2. 请阅读下面一段程序:from p
12、andas import Seriesimport pandas as pdfrom numpy import NaNseries_obj = Series(None, 4, NaN)pd.isnull(series_obj)执行上述程序后,最终输出的结果为( )。A.0 True1 False2 TrueB.0 True1 True2 FalseC.0 False1 True2 TrueD.0 True1 True2 True3. 下列选项中,可以删除缺失值或空值的是。( )A. isnull()B. notnull()C. dropna()D. fillna()4. 下列选项中,描述不正确
13、是。( )A. concat()函数可以沿着一条轴将多个对象进行堆叠B. merge()函数可以根据一个或多个键将不同的DataFrame进行合并C. 可以使用rename()方法对索引进行重命名操作D. unstack()方法可以将列索引旋转为行索引5. 请阅读下面一段程序:import numpy as npimport pandas as pdser_obj = pd.Series(4, np.nan, 6, 5, -3, 2)ser_obj.sort_values()执行上述程序后,最终输出的结果为( )。A.4 -3.05 2.00 4.03 5.02 6.01 NaNB.1 NaN
14、2 6.03 5.00 4.05 2.04 -3.0C.5 2.00 4.03 5.02 6.04 -3.01 NaND.0 4.01 NaN2 6.03 5.04 -3.05 2.0四、 简答题1. 请简述数据预处理的常用操作。2. 常用的数据合并操作有哪些?五、 程序题1. 现有如下图所示的两组数据,其中 A组中B列数据存在缺失值,并且该列数据为int类型,B组中的数据均为str类型。接下来,请对这些数据进行以下操作:(1) 使用DataFrame创建这两组数据。(2) 现在需要使用B组中的数据对A组中的缺失值进行填充并保持数据类型一致。(3) 将合并后A组中索引名为key的索引重命名为D
15、。第5章习题一、 填空题1. 分组聚合的流程分为 、 、 。2. 分组键的形式可以有 、 、 、 。 3. transform()方法会对产生的标量值进行 操作。4. 当对一个DataFrame对象进行分组后会返回一个 对象。二、 判断题1. 分组聚合的原理一般分为拆分-应用-合并。( )2. 只要使用groupby()方法分组就会产生一个DataFrameGroupby对象。( )3. 使用agg()方法进行聚合运算会对产生的标量值进行广播。( )4. 使用transform()方法进行聚合运算,其结果可以保持与原数据形状相同。( )5. apply()方法可以使用广播功能。( )三、 选择
16、题1. 下列选项中,关于groupby()方法说法不正确的是。( )A. 分组键可以是列表或数组,但长度不需要与待分组轴的长度相同B. 可以通过DataFrame中的列名的值进行分组C. 可以使用函数进行分组D. 可使用series或字典分组2. 下列选项中,关于agg()方法使用不正确是。( )A. agg()方法中func参数只能传入一个函数B. agg()方法中func参数可以传入多个函数C. agg()方法中func参数可以传入自定义函数D. agg()方法不能对产生的标量值进行广播3. 下列选项中,关于transform()方法说法正确的是。( )A. 不会与原数据保持相同形状B.
17、会对产生的标量值进行广播操作C. func参数只能传入内置函数D. func参数可以传入多个内置函数4. 下列选项中,关于apply()说法不正确的是。( )A. 可以使用自定义函数B. 可以接收多个函数C. 可以使用广播功能D. 返回的结果一定与原数据的形状相同5. 请阅读下面一段程序:import pandas as pd(pd.DataFrame(2, 3, * 3, columns=A, B).apply(lambda x: x + 1)执行上述程序后,最终输出的结果为( )。A. A B0 3 21 3 22 3 2B.A B0 2 31 2 32 2 3C.A B0 3 41 3
18、42 3 4D.A B0 4 31 4 32 4 3四、 简答题1. 请简述分组聚合的流程。2. 请简述常用的分组方式。五、 程序题1. 现有如下图所示的学生信息,请根据图中的信息完成以下操作:(1) 根据年级信息为分组键,对学生信息进行分组,并输出大一学生信息。(2) 分别计算出四个年级中身高最高的同学。(3) 计算大一学生与大三学生的平均体重。第6章习题一、 填空题1. bokeh是针对 使用的交互式可视化库。2. 数据可视化常见的统计图表有 、 、 。(写出3个即可)3. 在使用Matplotlib绘制图表时,需要导入 模块。4. 在直方图中一般使用横轴表示 ,用纵轴表示 。5. 在使用
19、Matplotlib绘制柱状图时可以使用pyplot模块中的 函数。二、 判断题1. seaborn是基于Matplotlib核心库。( )2. Figure对象可以划分多个绘图区域,每个绘图区域都是一个Axes对象。( )3. 绘制图表时,可以使用subplot()函数创建多个子图。( )4. Matplotlib默认支持中文显示。( )5. Matplotlib生成的图表可以保存在本地。( )三、 选择题1. 下列选项中,关于Matplotlib库说法不正确是。( )A. Matplotlib是一个Python 3D绘图库B. 可输出PNG、PDF等格式C. 渐进、交互的方式实现数据可视化
20、D. 使用简单2. 下列选项中,不属于Seaborn库的特点是。( )A. Seaborn是基于Matplotlib的可视化库B. 基于网格绘制出更加复杂的图像集合C. 多个内置主题及颜色主题D. 可以处理大量的数据流3. 下列选项中,关于boken库说法不正确的是。( )A. boken是一个专门针对Web浏览器使用的交互式可视化库B. Plotting接口用于构建各种组装图形元素C. Models接口可以为开发者提供最大的灵活性D. Charts库可直接使用,不需要单独安装4. 下列函数中,可以绘制散点图的函数是。( )A. hist()B. scatter()C. bar()D. pie
21、()5. 下列选项中,描述不正确的是。( )A. 箱形图可以提供有关数据分散情况的信息,可以很直观地查看数据的四分位分布B. 折线图是用直线段将数据连接起来而组成的图形,以折线的方式显式数据的变化C. 饼图显示一个数据序列中的各项的大小与各项总和的比例D. 条形图是由一系列高度不等的纵向条纹或线段表示数据分布情况四、 程序题1. 现有如图6-40所示的股票数据,根据图中的数据,完成以下需求:图6-1 股票数据(1) 使用DataFrame创建该股票数据。(2) 以证券简称为x轴,最新价为y轴使用条形图展示,将生成的条形图图以shares_bar.png为文件名保存在桌面上。第7章习题一、 填空
22、题1. _是指多个时间点上形成的数值序列。2. ARIMA模型是一种用于时间序列_的常见统计模型。3. Pandas中的频率是由一个_和一个乘数组成的,比如7D。4. _是指将时间序列从一个频率转换到另一个频率的处理过程。5. 在Pandas中,使用_类表示一个标准的时间段或时期。二、 判断题1. 最基本的时间序列类型是以时间戳为索引的Series对象。( )2. 如果相同频率的两个Period对象进行数学运算,那么计算结果为它们的单位数量。( )3. 任何类型的Pandas对象都可以进行重采样。( )4. DatetimeIndex是一种用来指代一系列时间戳的索引结构。( )5. 降采样时可
23、能会导致一些时间戳没有对应的数据。()三、 选择题1. 下列选项中,不可以用做Pandas对象索引的是( )。A. PeriodB. DatetimeIndexC. PeriodIndexD. MultiIndex2. 请阅读下面一段程序:import pandas as pdperiod1 = pd.Period(2015/6/1)print(period1 + 50)执行上述程序,最终输出的结果为( )。A. 2015-07-18B. 2015-07-19C. 2015-07-20D. 2015-07-213. 请阅读下面一段程序:import pandas as pdimport num
24、py as npdate_index = pd.date_range(start=2018/08/10, periods=5)date_se = pd.Series(np.arange(5), index=date_index)sorted_se = date_se.sort_index()print(sorted_se.truncate(after=2018-8-11)执行上述程序,最终输出的结果为( )。A.2018-08-12 22018-08-13 3B.2018-08-12 22018-08-13 32018-08-14 4C.2018-08-10 02018-08-11 12018
25、-08-12 2D.2018-08-10 02018-08-11 14. 下列函数中,用于创建固定频率DatetimeIndex对象的是( )。A. shift()B. date_range()C. period_range()D. asfreq()5. 关于重采样的说法中,下列描述错误的是( )。A. 重采样是将时间序列从一个频率转到另一个频率B. 升采样的时间颗粒是变小的C. 时间序列数据在降采样时,总体的数据量是增加的D. 时间序列数据在降采样时,总体的数据量是减少的四、 简答题1. 时间序列的数据有哪几种?2. 什么是降采样?什么是升采样?五、 程序分析题阅读下面的程序,分析代码是否能
26、够编译通过。如果能编译成功,请列出运行的结果,否则请说明编译失败的原因。1. 代码一:import pandas as pddate_index = pd.date_range(2018/08/10)ser_obj = pd.Series(11, date_index)print(ser_obj)2. 代码二:import pandas as pdperiod1 = pd.Period(2017/1)period2 = pd.Period(2017/6)print(period2-period1)3. 代码三:date_index = pd.date_range(2018/09/10, 201
27、8/09/13)ser_obj = pd.Series(11, date_index)ser_obj20180912第8章习题一、 填空题1. 常见的情感极性分析方法主要有 和 方法。2. 文本相似度的检测是根据 公式进行检测。 3. 余弦相似度与向量的幅值 ,与向量的方向 。 4. 文本分类属于 的机器学习。5. 文本分类的步骤包括 、 、 、 。 二、 判断题1. 导入的文本数据不需要任何处理就可以进行分析。( )2. 文本分词的目的在于使用单词来表示文本特征。( )3. 可以在停用词表中随意添加停用词。( )4. 词干提取和词性还原的目的是相同的。( )5. jieba分词只能用于中文分
28、词。( )三、 选择题1. 下列选项中,关于nltk库的描述不正确的是( )。A. nltk擅长处理英文文本B. nltk包括分词、词性标注、命名实体识别及句法分析等C. nltk是一个免费的、开源的、社区驱动的项目D. nltk库只能处理英文文本2. 根据中文的特点以下不属于分词算法的是( )。A. 基于规则的分词方法B. 基于统计的分词方法C. 基于理解的分词方法D. 基于动态的分词方法3. 下列选项中,不属于jieba分词模式( )。A. 支持精确模式B. 支持全模式C. 支持搜索引擎模式D. 支持繁体分词模式4. 阅读下面一段程序:from nltk.corpus import sto
29、pwordsimport nltksentence = Life is short,you need Python.words = nltk.word_tokenize(sentence)stop_words = stopwords.words(english)remain_words = for word in words: if word not in stop_words: remain_words.append(word)print(remain_words)执行上述程序,最终输出的结果为( )。A. Life, short, , need, Python, .B. Life, sho
30、rt, need, Python,C. Life, is, short, , need, Python, .D. Life, short, , you ,need, Python, .5. 阅读下面一段程序:import jiebasentence = 人生苦短,我用Pyhtonterms_list = jieba.cut(sentence, cut_all=True)print( .join(terms_list)执行上述程序,最终输出的结果为( )。A. 人生 苦短 我用 PyhtonB. 人生 苦短 我 用 PyhtonC. 人生苦短 我 用 PyhtonD. 人 生 苦 短 我 用 Pyhton四、 简答题1. 什么是文本分析?2. 请简述常用的文本情感分析方法。3. 请简述检测文本相似度的流程。原创文档 盗版必究