版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年Python数据分析期末试题及答案一、单项选择题(本大题共15小题,每小题2分,共30分。在每小题给出的四个选项中,只有一项是符合题目要求的)1.在Python数据分析中,NumPy库的核心数据结构是ndarray。关于ndarray的属性,下列说法正确的是()A.ndarray的形状属性是`shape`,返回一个表示数组维度的元组B.ndarray的数据类型属性是`type`,返回该数组的数据类型名称C.ndarray的维度属性是`ndim`,返回数组中元素的总个数D.ndarray的大小属性是`size`,返回数组的维度数目2.在Pandas中,创建一个DataFrame对象时,如果希望指定某一列作为行索引,应使用的参数是()A.`columns`B.`index`C.`index_col`D.`set_index`3.某电商平台的销售数据存储在CSV文件中,包含部分缺失值。若使用Pandas读取该文件并希望将缺失值自动填充为0,下列代码片段正确的是()A.`pd.read_csv('sales.csv',na_values=0)`B.`pd.read_csv('sales.csv',fillna=0)`C.`df=pd.read_csv('sales.csv');df.fillna(0,inplace=True)`D.`pd.read_csv('sales.csv',na_fill=0)`4.在Pandas中,对于一个包含时间序列数据的DataFrame`df`,其索引为日期类型。若需要对该数据进行降采样,将频率从每天转换为每月,并计算每月的均值,下列代码正确的是()A.`df.resample('D').mean()`B.`df.resample('M').mean()`C.`df.groupby('M').mean()`D.`df.rolling('M').mean()`5.在数据预处理阶段,经常需要删除DataFrame中包含过多缺失值的行。若要求删除“某行中非缺失值数量小于3”的行,应使用的代码是()A.`df.dropna(thresh=3)`B.`df.dropna(how='any',thresh=3)`C.`df.dropna(subset=3)`D.`df.dropna(axis=1,thresh=3)`6.使用Matplotlib绘制散点图时,若需要展示数据点的分布密度,可以通过调整数据点的透明度来实现。控制透明度的参数是()A.`alpha`B.`linewidth`C.`marker`D.`edgecolor`7.在Scikit-learn中,用于将数据集划分为训练集和测试集的函数是`train_test_split`。若希望测试集占总数据集的30%,且保证每次划分结果相同,下列参数设置正确的是()A.`test_size=0.3,shuffle=False`B.`test_size=0.3,random_state=42`C.`test_size=30,random_state=42`D.`test_size=0.3,stratify=True`8.在评估回归模型的性能时,均方误差(MSE)是一个常用的指标。下列关于MSE的描述中,正确的是()A.MSE的值越小,说明模型的拟合效果越差B.MSE对异常值非常敏感,因为其计算了误差的平方C.MSE的计算公式为|D.MSE的取值范围是[0,1]9.在Pandas中,关于`merge`、`join`和`concat`三种合并操作的说法,错误的是()A.`merge`主要用于根据一个或多个键将两个DataFrame连接起来,类似于SQL中的JOINB.`join`默认根据索引进行合并C.`concat`可以沿着行或列的方向将多个DataFrame拼接在一起D.`merge`和`join`的功能完全等价,可以互相替换10.在进行特征工程时,如果某个特征的方差非常小(即该列数据几乎相同),该特征对机器学习模型的训练通常没有太大帮助。Scikit-learn中用于删除低方差特征的类是()A.`StandardScaler`B.`VarianceThreshold`C.`SelectKBest`D.`PCA`11.假设有一个PandasSeries对象`s`,其内容为`[1,2,3,4,5]`。现需要将其所有元素进行Z-score标准化(即转换为均值为0,标准差为1的分布),下列操作正确的是()A.`(s-s.mean())/s.std()`B.`(s-s.min())/(s.max()-s.min())`C.`s/s.sum()`D.`(s-s.median())/s.var()`12.在使用Pandas进行分组聚合时,如果希望对不同的列应用不同的聚合函数,应使用的代码形式是()A.`df.groupby('key').agg({'col1':'mean','col2':'sum'})`B.`df.groupby('key').apply({'col1':'mean','col2':'sum'})`C.`df.groupby('key').transform({'col1':'mean','col2':'sum'})`D.`df.groupby('key').mean({'col1':'mean','col2':'sum'})`13.在Python中,用于处理大规模数据的库Dask的设计初衷是为了解决Pandas在处理单机内存无法容纳的数据集时的瓶颈。关于Dask,下列说法错误的是()A.Dask的DataFrameAPI在语法上与Pandas高度相似B.Dask采用延迟计算机制,只有在调用`compute()`时才会真正执行计算C.Dask仅能处理结构化数据,无法处理非结构化数据D.Dask可以在单机上进行多线程/多进程计算,也可以扩展到多节点集群14.在时间序列分析中,平稳性是一个重要前提。下列哪种方法常用于检验时间序列的平稳性?()A.Jarque-Bera检验B.AugmentedDickey-Fuller(ADF)检验C.Durbin-Watson检验D.Breusch-Pagan检验15.在Scikit-learn中构建机器学习Pipeline(管道)时,若中间步骤需要进行特征降维,下列类可以直接放入Pipeline中的是()A.`numpy.linalg.svd`B.`sklearn.decomposition.PCA`C.`pandas.DataFrame.drop`D.`scipy.stats.pca`二、多项选择题(本大题共5小题,每小题3分,共15分。在每小题给出的四个选项中,至少有两个选项是符合题目要求的,多选、漏选或错选均不得分)1.在Python的数据科学生态系统中,常用的数据可视化库包括()A.MatplotlibB.SeabornC.PlotlyD.TensorFlow2.在Pandas中,关于缺失值处理的描述,正确的有()A.`df.isnull()`用于判断DataFrame中的元素是否为缺失值,返回布尔型DataFrameB.`df.dropna()`默认会删除所有包含缺失值的行C.`df.fillna(method='ffill')`表示使用前一个有效值来填充缺失值D.可以使用`erpolate()`通过线性插值等方法填充缺失值3.在构建机器学习模型时,防止过拟合的常用策略包括()A.增加训练数据的样本量B.使用正则化技术(如L1、L2正则化)C.减少模型的复杂度(如降低多项式特征的阶数、限制决策树的深度)D.采用K折交叉验证来评估模型4.关于NumPy中的广播机制,下列说法正确的有()A.广播机制允许NumPy在执行算术运算时处理不同形状的数组B.当两个数组的维度不同时,NumPy会自动在较小的数组前面补1,直到维度相同C.如果两个数组在某个维度上的长度不相同,且其中一个不为1,则无法进行广播D.广播机制会实际分配内存来复制数组,因此会大量消耗内存5.在数据分析项目中,数据清洗通常包含以下哪些步骤?()A.处理重复数据B.处理缺失值和异常值C.数据类型转换D.字符串处理与特征编码三、填空题(本大题共10小题,每小题2分,共20分。请将答案填写在横线上)1.NumPy中生成一个形状为3行4列、元素全为1的二维数组的函数是__________。2.在Pandas中,若要查看DataFrame`df`的前10行数据,应使用的代码是`df.__________(10)`。3.Pandas中用于将DataFrame保存为Excel文件的函数是`to_excel`,若要保存为CSV文件,应使用函数`__________`。4.在Matplotlib中,若要在同一个画布上绘制2行2列共4个子图,通常使用`plt.__________(2,2,index)`函数。5.在Python中,用于持久化模型或对象的库是`pickle`,Scikit-learn中也提供了`joblib`库,其保存模型的方法是`joblib.__________(model,'model.pkl')`。6.在Pandas中,若要对某列数据进行分箱操作,例如将年龄划分为不同的区间,可以使用`pd.__________`函数。7.假设有一个列表`data=[1,2,2,3,3,3,4]`,若要计算其众数,可以使用Scipy库中的`stats.__________(data)`方法。8.在Scikit-learn的线性回归模型中,拟合数据使用的方法是`fit`,预测数据使用的方法是`__________`。9.在Pandas中,提取DataFrame中满足特定条件的行(例如提取列`A`大于5的所有行),这种操作称为__________索引。10.在Scikit-learn中,主成分分析(PCA)是一种常用的无监督降维方法,其实例化对象后,用来指定保留主成分个数的参数是`__________`。四、简答题(本大题共4小题,每小题10分,共40分)1.简述Pandas中`loc`和`iloc`切片索引器的区别,并分别给出一个代码示例说明其用法。2.什么是特征工程中的独热编码?它在机器学习中有什么作用?请说明在Pandas或Scikit-learn中如何实现独热编码。3.简述K折交叉验证的原理及其在机器学习模型评估中的优势。4.在数据可视化中,箱线图是一种常用的统计图。请说明箱线图的五个主要组成部分,并解释如何通过箱线图识别数据中的异常值。五、综合应用题(本大题共3小题,每小题15分,共45分。要求写出核心代码及必要的分析步骤,涉及计算或公式部分需使用标准LaTeX公式表达)1.某在线教育平台的用户学习记录数据存储在名为`user_study.csv`的文件中,数据集包含以下字段:`user_id`(用户ID)、`course_name`(课程名称)、`study_duration`(学习时长,分钟)、`date`(学习日期)。由于系统故障,数据中存在重复记录和部分缺失值。请编写Pandas代码完成以下数据处理任务:(1)读取数据,并删除完全重复的行记录。(2)对于`study_duration`列的缺失值,使用该列的中位数进行填充。(3)将`date`列转换为日期时间类型。(4)假设当前日期为2026年1月1日,请计算每位用户的总学习时长,并筛选出总学习时长大于500分钟的用户,输出结果按总学习时长降序排列。2.在机器学习回归问题中,假设我们有真实值集合y=[,请回答以下问题:(1)写出均方误差(MSE)和决定系数()的数学计算公式。(2)解释取值的含义,并说明当为负数时意味着什么。(3)给定真实值y=[3,−3.在构建鸢尾花(Iris)分类模型时,需要使用Scikit-learn库完成从数据加载到模型评估的完整流程。已知Iris数据集包含4个特征和3个类别。请编写代码完成以下任务:(1)加载Iris数据集,并将其划分为训练集和测试集(测试集占比20%,设置`random_state=42`保证结果可复现)。(2)对特征数据进行标准化处理。(3)使用支持向量机(SVM)作为分类器,构建一个包含标准化和SVM的Pipeline管道。(4)在测试集上进行预测,并输出分类报告,要求包含精确率、召回率和F1分数。参考答案及解析一、单项选择题1.【答案】A【解析】`shape`返回表示数组维度的元组;`dtype`返回数据类型;`size`返回数组元素总个数;`ndim`返回维度数目。2.【答案】C【解析】`pd.read_csv`中的`index_col`参数可以指定将哪一列作为行索引。`set_index`是在读取数据后用于设置索引的方法,不是创建时的参数。3.【答案】C【解析】`pd.read_csv`本身没有在读取时直接填充为0的参数。`na_values`用于指定哪些值被视为缺失值。读取后使用`fillna(0,inplace=True)`可以原地替换缺失值为0。4.【答案】B【解析】`resample('M')`表示按月重采样,随后调用`.mean()`计算每月均值。`resample('D')`是按天,`rolling`用于滑动窗口计算,`groupby`通常用于普通列分组。5.【答案】A【解析】`thresh=3`表示保留至少有3个非缺失值的行,即非缺失值数量小于3的行会被删除。6.【答案】A【解析】`alpha`参数控制透明度,取值范围0到1。`linewidth`控制线宽,`marker`控制标记样式,`edgecolor`控制边缘颜色。7.【答案】B【解析】`test_size=0.3`表示测试集占30%,`random_state=42`设置随机种子保证划分可复现。8.【答案】B【解析】MSE是误差平方的均值,因此对异常值敏感。其公式为(,MSE越小模型越好,取值范围理论上为[09.【答案】D【解析】`merge`和`join`功能并不完全等价,`merge`更灵活,允许指定列连接,`join`默认基于索引连接。10.【答案】B【解析】`VarianceThreshold`是特征选择中的方差阈值法,用于移除低方差特征。`StandardScaler`用于标准化,`SelectKBest`用于选择K个最佳特征,`PCA`是主成分分析降维。11.【答案】A【解析】Z-score标准化公式为(X12.【答案】A【解析】`agg`方法允许传入一个字典,键为列名,值为聚合函数字符串或列表,实现对不同列应用不同聚合操作。13.【答案】C【解析】Dask不仅可以处理结构化数据,还提供了处理非结构化数据和通用计算任务的接口,如DaskBag和DaskDelayed。14.【答案】B【解析】ADF检验(AugmentedDickey-Fullertest)是时间序列分析中检验序列平稳性的常用方法。A检验正态性,C检验自相关,D检验异方差性。15.【答案】B【解析】Scikit-learn的Pipeline要求中间步骤是实现`fit`和`transform`方法的转换器对象,`PCA`符合此要求。其他选项不是标准的Scikit-learn转换器。二、多项选择题1.【答案】ABC【解析】Matplotlib、Seaborn和Plotly都是Python中常用的数据可视化库。TensorFlow是深度学习框架。2.【答案】ABCD【解析】`isnull()`判断缺失值,`dropna()`默认删除含缺失值的行,`fillna(method='ffill')`前向填充,`interpolate()`用于插值填充。3.【答案】ABCD【解析】增加数据量、正则化、降低模型复杂度、交叉验证均是常用的防止过拟合的策略。4.【答案】ABC【解析】广播机制允许不同形状的数组进行运算,不会实际复制数据分配内存,因此内存消耗很小,D项错误。5.【答案】ABCD【解析】数据清洗通常包括处理重复数据、缺失值、异常值、数据类型转换以及字符串处理与特征编码。三、填空题1.`np.ones((3,4))`2.`head`3.`to_csv`4.`subplot`5.`dump`6.`cut`7.`mode`8.`predict`9.布尔10.`n_components`四、简答题1.【参考答案】`loc`和`iloc`都是Pandas中用于索引和切片数据的方法,主要区别在于:(1)`loc`是基于标签的索引器,它使用行标签和列标签来进行切片,切片时包含末尾的标签。(2)`iloc`是基于整数位置的索引器,它使用从0开始的整数位置进行切片,切片时包含起始位置但不包含末尾位置(类似Python原生列表切片)。示例代码:```pythonimportpandasaspddf=pd.DataFrame({'A':[10,20,30]},index=['a','b','c'])#loc使用标签,包含'b'print(df.loc['a':'b'])#iloc使用位置,不包含索引2的行print(df.iloc[0:1])```2.【参考答案】独热编码是将分类变量转换为若干个二进制列的过程,每个二进制列对应分类变量的一个可能取值。如果原始取值出现,则对应列置为1,否则置为0。作用:许多机器学习算法(如线性回归、SVM等)无法直接处理非数值型的类别特征。直接将类别映射为整数(如1,2,3)可能会引入不存在的数值大小关系。独热编码能够消除这种偏序关系,使模型正确处理无序的分类特征。实现方法:在Pandas中,可以使用`pd.get_dummies(data,columns=['category_col'])`实现。在Scikit-learn中,可以使用`sklearn.preprocessing.OneHotEncoder`类进行拟合和转换。3.【参考答案】原理:K折交叉验证将数据集划分为大小相等的K个子集(折叠)。每次选取其中一个子集作为测试集,其余K-1个子集作为训练集,训练模型并在测试集上评估。重复该过程K次,使得每个子集都恰好作为一次测试集。最终的评估指标为K次评估结果的平均值。优势:充分利用有限的数据资源,避免了单次划分可能带来的偶然性误差。通过多次划分与评估,能够更客观、稳健地反映模型在未知数据上的泛化能力,减少过拟合评估指标偏差的风险。4.【参考答案】箱线图的五个主要组成部分为:(1)箱体:上边缘代表上四分位数(Q3),下边缘代表下四分位数(Q(2)中位数线:箱体内部的横线代表数据的中位数(Q2(3)须:从箱体上下边缘延伸出的线段,通常代表数据的正常范围上下限。(4)异常值点:超出须范围的离散点。(5)最大值和最小值(须的端点)。异常值识别方法:通常定义异常值的判定边界为:下限=Q上限=Q其中IQ五、综合应用题1.【参考答案】```pythonimportpandasaspdimportnumpyasnp#(1)读取数据,并删除完全重复的行记录df=pd.read_csv('user_study.csv')df.drop_duplicates(inplace=True)#(2)对于study_duration列的缺失值,使用该列的中位数进行填充median_duration=df['study_duration'].median()df['study_duration'].fillna(median_duration,inplace=True)#(3)将date列转换为日期时间类型df['date']=pd.to_datetime(df['date'])#(4)计算每位用户的总学习时长,筛选大于500分钟的用户并降序排列result=df.groupby('user_id')['study_duration'].sum().reset_index()result=result[result['study_duration']>500]result.sort_values(by='study_duration',ascending=False,inplace=True)print(result)```2.【参考答案】(1)均方误差(MSE)和决定系数()的数学计算公式如下:均方误差:M决定系数:=其中,n为样本总数,为真实值,为预测值,¯y为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省韶关市四县、区2021-2022学年七年级上学期期末历史试题(含答案)
- 2027年回迁房过户合同二篇
- 2027年船务运输合同二篇
- 做账实操-财务月报异常处理记录表
- 合规转利润:降本增效全指南(2026)《GBT 36042-2018超超临界汽轮机转子体锻件技术条件》
- 2026年山东省青岛市中考英语真题及答案解析
- 课时作业 民主监督测试题
- 客户服务管理员岗前任职考核试卷含答案
- 《观察物体》整体规划
- 粮库中控工诚信道德知识考核试卷含答案
- 2026秋新教材浙美版小学美术五年级上册(全册)教学设计(附目录p115)
- 1.1认识社会生活 课件 2026-2027学年统编版道德与法治 八年级上册
- 学校食品安全知识培训课件
- 2026年三轮驾驶证理论考试题附答案
- 2026人教PEP版五年级上册英语Unit 6 Nature and us 教案
- 生活垃圾焚烧工技师考试试卷及答案
- 2026年安全员之江苏省C1证(机械安全员)通关考试题库带答案解析
- 中职人工智能通识教育课程标准
- 2026秋小学新版人教鄂教版科学二年级上册教学计划、教学设计(附目录)适用于新课标
- 危重患者循证护理实践
- 2026-2030中国净水器市场应用规模及未来发展行情走势分析研究报告
评论
0/150
提交评论