版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
初识Python本章习题一、选择题1.(单选)在以下哪个领域中,Python的应用较少?(D)A.Web开发B.数据分析和科学计算C.人工智能和深度学习D.电子游戏开发2.(单选)Python的哪个特点使得它易于学习和上手?(B)A.高执行效率B.开放源代码C.编码加密功能D.复杂的语法规则3.(单选)下列哪一项不是Python编程语言的关键特点?(C)A.简单语法B.动态类型C.执行速度快D.成熟生态系统4.(单选)“pipinstall”命令在Python中用于做什么?(A)A.安装第三方库B.运行Python脚本C.打印Python版本D.打开IPythonshell5.(单选)Python源代码文件的典型文件扩展名是什么?(A)A..pyB..pycC..cppD..exe二、判断题1.Python是一种解释型脚本语言,可以在Windows、MacOSX和Linux等操作系统中运行。(正确)2.Python解释器通常被称为CPython,是用Java语言实现的。(错误)3.Python拥有贫弱的生态系统和有限的库。(错误)4.Python是一种解释型脚本语言,代码需要先编译成机器码才能运行。(错误)5.Python是一种动态类型语言,变量可以重新绑定不同类型的值。(正确)实训Python编程的基础知识,包括Python简介、开发环境、安装和编写简单程序等。一、实训目的通过这个实训,读者将掌握在Windows系统下安装Python解释器、编写和运行Python程序的基本步骤。二、实训步骤步骤1:准备工作下载并安装Python3.11.2解释器,推荐64位版本。下载并安装VisualStudioCode等文本编辑工具。步骤2:编写Python程序使用VisualStudioCode等文本编辑工具创建一个名为“hello.py”的文件,并输入以下代码。Python#这是一个简单的Python程序#定义一个变量name="小明"#打印变量的值print("Hello,"+name+"!")步骤3:运行Python程序打开命令提示符,并切换到“hello.py”文件所在的目录。输入以下命令运行程序pythonhello.py。pythonhello.py通过该实训,读者快速入门Python编程,并掌握Python的基础知识和开发环境配置。Python开发工具本章习题一、选择题1.(单选)VSCode是由以下哪家公司开发的跨平台代码编辑器,支持多种语言,包括Python?()A.AppleB.GoogleC.MicrosoftD.Adobe2.(单选)以下哪个选项不是VSCode的主要特点?()A.开放源代码B.内置调试器C.仅支持JavaScript语言D.支持多种编程语言3.(单选)通过安装Python插件,可以在VSCode中进行以下哪项操作?()A.阅读PDF文件B.编写和运行Python代码C.3D建模D.视频编辑4.(多选)以下哪些是VisualStudioCode(VSCode)的主要特点?(ABD)A.开放源代码B.支持多种编程语言,包括PythonC.具有内置的图像编辑功能D.提供强大的编辑功能,如自动完成和代码片段5.(多选)以下关于JupyterNotebook的描述中,哪些是正确的?(BD)A.JupyterNotebook支持多种编程语言,但不包括PythonB.在JupyterNotebook中,代码和markdown内容可以在同一个文件中交替编写C.JupyterNotebook不允许添加新的代码cell或markdowncellD.JupyterNotebook中可以在每个cell中运行代码并查看结果二、简答题什么是Python中的解释型语言?简要说明解释型语言与编译型语言的区别,并举例说明Python为何被称为解释型语言。答案:解释型语言是一种在运行时逐行解释并执行程序代码的语言。与之相对,编译型语言在运行之前需要将整个程序代码编译成机器码或中间代码,然后由计算机直接执行。区别:解释型语言:在运行时逐行解释执行代码,不需要独立的编译过程。适合开发迅速,但通常比编译型语言执行速度较慢。编译型语言:在运行之前将代码完全编译成机器码或中间代码,执行速度较快。但开发周期可能较长,需要经过编译过程。Python被称为解释型语言,因为它的代码不需要事先编译,而是通过Python解释器逐行执行。Python解释器会在运行时将代码翻译成机器码,然后执行。这种方式使得开发者可以更快速地进行开发和测试,但也导致相对较低的执行效率。Python的动态类型和强大的反射机制也是解释型语言的特点之一,使得代码更灵活。实训打开VSCode编辑器,配置常用的编辑器设置,如字体大小、制表符宽度、自动换行、显示行号等。(1)实训目的通过这个实训,学生将学会使用VSCode编辑器的基本设置功能,使编辑器适合他们的工作风格和需求。他们将了解如何自定义字体大小、制表符宽度、自动换行和行号等常用的编辑器设置。(2)实训步骤步骤1:下载并安装VSCode编辑器首先,确保学生已经下载并安装了VSCode编辑器。他们可以从官方网站/下载适用于自己操作系统的版本。步骤2:打开VSCode编辑器打开已安装的VSCode编辑器。步骤3:配置编辑器设置点击左上角的"文件(File)"菜单,然后选择“首选项(Preferences)”,再选择"设置(Settings)",这将打开设置面板。在此面板中,可以配置各种编辑器设置。{//设置字体大小"editor.fontSize":14,//设置制表符宽度为4个空格"editor.tabSize":4,//自动换行"editor.wordWrap":"on",//显示行号"editor.lineNumbers":"on"}在设置面板中,你可以搜索特定的设置项,然后根据需要进行自定义。步骤4:配置其他常用设置在编辑器设置中,还可以根据个人偏好配置其他设置,如主题颜色、代码折叠、拼写检查等。步骤5:创建一个Python文件,并编写简单的代码在VSCode中,点击左上角的“文件(File)”菜单,选择“新建文件(NewFile)”,然后保存为“.py”后缀的文件,如“example.py”。在新创建的Python文件中,编写一段简单的代码,例如:print("Hello,VSCode!")步骤6:运行Python代码并查看输出结果在Python文件中,右键单击并选择“运行Python文件(RunPythonFileinTerminal)”,可以在终端中看到代码的输出结果。通过这个实训,学生将熟悉如何配置VSCode编辑器的基本设置,以适应自己的工作风格。他们还可以通过编写和运行简单的Python代码,加深对编辑器的使用。Python编程基础本章习题一、选择题1.(单选)以下Python代码的输出结果是什么?(B)a=10b=20print(a+b)A.1020B.30C.a+bD.以上都不是2.(单选)下列哪一项不是Python的核心数据结构?(C)A.列表B.字典C.数组D.元组3.(单选)在Python中如何定义一个函数?(A)A.def函数():B.函数{}C.函数()D.define函数():4.(多选)Python变量可以保存哪些数据类型?(ABCD)A.整数B.字符串C.浮点数D.布尔值5.(多选)下列哪些是Python中的循环语句?(BC)A)ifB.forC.whileD.switch1.Python是一种静态类型语言。(错误)2.and、or、not是Python中的逻辑运算符。(正确)3.Python函数可以返回多个值。(正确)4.Python有switch-case语句。(错误)5.导入模块可以使用其中的函数。(正确)二、判断题1.Python是一种静态类型语言。(错误)2.and、or、not是Python中的逻辑运算符。(正确)3.Python函数可以返回多个值。(正确)4.Python有switch-case语句。(错误)5.导入模块可以使用其中的函数。(正确)习题1:请编写一个Python程序,实现以下功能:输入一个商品的价格和数量,计算出总价,并输出“总价为xxx元”。答案:price=float(input("请输入商品价格:"))quantity=int(input("请输入商品数量:"))total=price*quantityprint("总价为%.2f元"%total)运行结果:请输入商品价格:12.5请输入商品数量:3总价为37.50元习题2:请编写一个Python程序,实现以下功能:输入一个员工的基本工资和绩效评分,计算出实际工资,并输出“实际工资为xxx元”。答案:salary=float(input("请输入基本工资:"))rating=float(input("请输入绩效评分:"))bonus=salary*ratingtotal=salary+bonusprint("实际工资为%.2f元"%total)运行结果:请输入基本工资:5000请输入绩效评分:1.2实际工资为6000.00元习题3:请编写一个Python程序,实现以下功能:输入一个订单的总金额和折扣率,计算出折扣后的金额,并输出“折扣后的金额为xxx元”。答案:total=float(input("请输入订单总金额:"))discount=float(input("请输入折扣率:"))amount=total*discountprint("折扣后的金额为%.2f元"%amount)运行结果:请输入订单总金额:1000请输入折扣率:0.8折扣后的金额为800.00元实训输入一个员工的基本工资和绩效评分,计算出实际工资,并输出“实际工资为xxx元”。(1)实训目的通过这个实训,学生将学会如何编写一个Python程序,用于根据员工的基本工资和绩效评分计算实际工资。他们将学习输入数据、条件判断和简单计算的基本编程概念。(2)实训步骤步骤1:获取员工基本工资和绩效评分使用input函数获取用户输入的员工基本工资和绩效评分。 basic_salary=float(input("请输入员工的基本工资:"))performance_score=float(input("请输入员工的绩效评分:"))步骤2:计算实际工资根据输入的绩效评分,计算实际工资。假设绩效评分在0到1之间,实际工资为基本工资乘以绩效评分。actual_salary=basic_salary*performance_score步骤3:输出结果使用print函数输出计算得到的实际工资。print(f"实际工资为{actual_salary}元")步骤4:运行程序将以上步骤的代码整合在一起,运行程序。在终端中输入员工的基本工资和绩效评分,程序将计算实际工资并输出结果。通过这个实训,学生将学会如何编写一个简单的Python程序,进行输入、条件判断和计算操作。这将帮助他们理解基本的编程概念和程序逻辑。NumPy数据分析本章习题(一)单选题在NumPy中,如何创建一个全为0的数组?A.np.zeros((3,3))B.np.ones((3,3))C.np.empty((3,3))D.np.eye(3)答案:A在NumPy中,如何计算两个数组的点积?A.np.dot(a,b)B.a*bC.np.cross(a,b)D.np.add(a,b)答案:A在NumPy中,如何获取数组的形状?A.a.shapeB.a.ndimC.a.sizeD.a.dtype答案:A在NumPy中,如何获取数组中的最大值和最小值?A.np.max(a)和np.min(a)B.a.max()和a.min()C.np.maximum(a)和np.minimum(a)D.a.maximum()和a.minimum()答案:B在NumPy中,如何将两个数组按照列方向进行拼接?A.np.concatenate((a,b),axis=0)B.np.concatenate((a,b),axis=1)C.np.vstack((a,b))D.np.hstack((a,b))答案:D(二)多选题在NumPy中,以下哪些函数可以用于创建随机数组?A.np.random.rand()B.np.random.randn()C.np.random.randint()D.np.random.choice()答案:A、B、C、D在NumPy中,以下哪些函数可以用于对数组进行排序?A.np.sort()B.np.argsort()C.np.partition()D.np.searchsorted()答案:A、B、C二、判断题1.NumPy中的ndarray对象代表多维数组。(正确)2.在NumPy数组中,负索引表示从末尾开始计数。(正确)3.NumPy中的broadcasting允许不同形状的数组进行运算。(正确)4.NumPy只支持数值类型,不支持字符串类型。(错误)5.axis参数用于指定数组运算的方向。(正确)实训 统计不同区域本月的销售额,求出各区域的销售总额。一、实训目的通过这个实训,读者将熟练使用Numpy统计和分析业务数据,掌握数组操作的方法。二、实训步骤步骤1:导入Numpy模块首先导入NumPy模块。importnumpyasnp步骤2:创建销售额数组定义一个形状为(3,4)的二维数组,表示3个区域4个城市的销售额。sales=np.array([[1500,2000,1600,2200],[3000,3500,3200,3400],[0,0,0,0]])步骤3:求区域销售总额将每个区域的4个城市销售额相加,赋值给对应的第3行元素。sales[2,:]=sales[0,:]+sales[1,:]步骤4:输出结果打印第3行元素,查看每个区域的销售总额。print(sales[2,:])通过该实训,读者可以掌握使用Numpy进行商务数据统计的方法。Pandas数据分析本章习题一、选择题1.(单选)Pandas的主要作用是什么?(B)A.图像处理B.数据分析C.网络编程D.前端开发2.(单选)Pandas中的两个主要数据结构分别是什么?(D)A.Array和FrameB.Series和ArrayC.DataFrame和MatrixD.Series和DataFrame3.(单选)在Pandas中,哪个函数用于读取CSV文件?(A)A.read_csv()B.load_csv()C.import_csv()D.open_csv()4.(多选)Pandas中的Series对象代表的是?(AD)A.一维数组B.二维数组C.表格D.列表5.(多选)下列哪些是Pandas中的数据清洗方法?(ABC)A.去重B.填充缺失值C.类型转换D.分组二、判断题1.Pandas只能处理结构化数据,不能处理非结构化数据。(错误)2.使用Pandas,可以通过.groupby()方法进行数据分组,然后通过聚合函数对分组后的数据进行汇总统计。(正确)3.Pandas的主要功能是进行图像处理和计算机视觉任务。(错误)。4.Series对象中的值必须为数字类型。(错误)5.Pandas没有时间序列处理功能。(错误)三、填空题1.Pandas提供了快速、灵活、强大的数据结构和丰富的函数和方法,能够简单、直观地处理各种复杂的数据,是Python数据分析的必备___高级工具_____工具。2.Pandas中的两个常用的数据结构是___Series_____和___DataFrame_____。3.使用Pandas读取CSV文件的函数是____read_csv()____。4.在Pandas中,通过调用df.head()方法,可以查看DataFrame的前几行数据,默认是前____5____行。5.在Pandas中,使用.groupby()方法进行数据分组后,可以使用聚合函数如__sum______、____mean____等对分组后的数据进行统计计算。四、计算题1.假设有以下PandasDataFrame,名为sales_data,表示某公司的销售数据:MonthSales0110012150231203418045200请计算并输出销售额的平均值。答案:平均销售额=(100+150+120+180+200)/5=1502.假设有以下两个PandasDataFrame,df1和df2:df1:IDScore018512902375df2:IDAge012512302428请合并这两个DataFrame,以ID列为键,输出合并后的结果。答案:合并后的结果为:IDScoreAge0185251290302375NaN34NaN28实训统计不同季度各产品的销售额,汇总生成销售透视表。一、实训目的通过这个实训,读者将熟练使用Pandas进行商务数据分析,掌握分组聚合等高级技巧。准备销售明细数据sales.csv,数据内容如下:季度产品销售额01季度手机250011季度电脑300022季度手机200032季度电脑350043季度手机300053季度电脑4000二、实训步骤步骤1:导入Pandas库首先,确保读者已经导入了Pandas库。步骤2:读取销售明细表使用Pandas的read_csv函数读取CSV文件中的数据。df=pd.read_csv("sales.csv")步骤3:分组聚合使用groupby()按季度和产品分组,求销售额sum()。df_grouped=df.groupby(['季度','产品'])['销售额'].sum()步骤4:生成透视表使用pivot_table()生成季度产品销售透视表。table=df_grouped.unstack(level=0)步骤5:打印结果打印透视表,展示每个季度不同产品的销售规模。产品手机电脑季度1季度250030002季度200035003季度30004000通过这个实训,读者将学会如何使用Pandas库进行高级数据操作,包括数据分组聚合、透视表等。这将帮助他们更深入地从数据中获取有价值的信息。Matplotlib数据绘图本章习题一、选择题1.(单选)Matplotlib通常与哪些库一起使用,是数据科学和机器学习工作者必不可少的工具?(C)A.Scikit-learnB.TensorFlowC.NumPyD.PyTorch2.(单选)Matplotlib中的对象可以分为哪两类?(A)A.容器类和基础类B.图表类和坐标类C.数据类和属性类D.函数类和对象类3.(单选)下列哪个方法用于创建一个新的图或画布?(C)A.plt.create()B.plt.new_figure()C.plt.figure()D.plt.plot()4.(多选)Matplotlib可以绘制哪些类型的图表?(ABD)A.折线图B.散点图C.雷达图D.箱线图5.(多选)调整Matplotlib图形中文字体的方法有哪些?(AC)A.设置全局字体B.保存为svg格式C.使用中文字体D.设置轴标题字体一、判断题1.Matplotlib是一个用于3D图形绘制的Python库。(错误)2.在Matplotlib中,基于面向对象的绘图方式可以使用pyplot模块中的函数进行绘图。(正确)3.使用subplot()函数时,可以通过传递三个整数来设置子图的行数、列数和当前位置。(正确)4.子图间共享x轴和y轴。(正确)5.饼图主要用于展示时间序列数据。(错误)三、绘制图形题1.请绘制一个简单的折线图,横轴表示时间,纵轴表示温度。假设有以下数据点:时间:[0,1,2,3,4,5]温度:[20,22,25,23,21,18]答案:导入Matplotlib库。创建一个新的图形对象。使用plt.plot()函数绘制折线图,传入时间和温度数据。设置横轴标签、纵轴标签和图标题。使用plt.show()显示绘制的图形。绘制代码示例:importmatplotlib.pyplotasplttime=[0,1,2,3,4,5]temperature=[20,22,25,23,21,18]plt.plot(time,temperature,marker='o')plt.xlabel('时间')plt.ylabel('温度')plt.title('温度变化折线图')plt.show()2.使用Matplotlib绘制一个分组柱状图,展示两组数据在不同季节的销售情况。假设有以下数据:季节:['春季','夏季','秋季','冬季']销售A组:[100,150,130,110]销售B组:[120,140,125,105答案:导入Matplotlib库。创建一个新的图形对象。使用plt.bar()函数分别绘制销售A组和销售B组的柱状图。设置横轴标签、纵轴标签和图标题。使用plt.legend()设置图例。使用plt.show()显示绘制的图形。importmatplotlib.pyplotaspltimportnumpyasnpseasons=['春季','夏季','秋季','冬季']sales_A=[100,150,130,110]sales_B=[120,140,125,105]x=np.arange(len(seasons))width=0.4fig,ax=plt.subplots()ax.bar(x-width/2,sales_A,width,label='销售A组')ax.bar(x+width/2,sales_B,width,label='销售B组')ax.set_xlabel('季节')ax.set_ylabel('销售额')ax.set_title('销售A组和销售B组季节销售情况')ax.set_xticks(x)ax.set_xticklabels(seasons)ax.legend()plt.show()实训使用Matplotlib可视化某公司不同区域的销售和利润情况。一、实训目的通过这个实训,读者将学习使用Matplotlib可视化分析商业数据,如不同区域的销售业绩数据。可视化可以更直观地展示数据趋势和模式,有助于商业决策。二、实训步骤步骤1:导入Matplotlib库导入库,为绘制图表做准备。步骤2:准备业务数据整理不同区域的销售业绩数据,作为图表的数据源。步骤3:绘制极坐标图使用极坐标图比较各区域的销售总额大小。步骤4:绘制三维散点图使用三维散点图显示不同季度各区域销售变化趋势。步骤5:绘制等高线图使用等高线图展示区域销售变化的趋势和模式。通过学习绘制不同类型的图表,读者可以掌握使用Matplotlib进行商业数据可视化分析的技能,为商业决策提供数据支持。具体的代码实现:#步骤1:导入Matplotlibimportmatplotlib.pyplotasplt#步骤2:准备区域销售数据regions=['东部','西部','北部','南部']sales=[50000,60000,80000,70000]#步骤3:绘制极坐标图plt.polar(regions,sales)plt.show()#步骤4:准备三维销售数据quarters=[1,2,3,4]regions=['东部','西部','北部','南部']sales=[[50000,40000,60000,55000],[50000,50000,70000,65000],[70000,75000,80000,90000],[60000,70000,75000,80000]]#绘制三维散点图fig=plt.figure()ax=plt.axes(projection='3d')ax.scatter3D(quarters,regions,sales)plt.show()#步骤5:绘制等高线图x=[1,2,3,4]y=[50000,60000,80000,70000]plt.contourf(x,y)plt.show()Seaborn数据绘图本章习题一、选择题1.(单选)Seaborn是基于哪个Python数据可视化库的?(B)A.NumpyB.MatplotlibC.PandasD.Scipy2.(单选)在Seaborn中,哪个函数用于绘制直方图和拟合密度曲线?(C)A.sns.barplot()B.sns.scatterplot()C.sns.distplot()D.sns.heatmap()3.(单选)在Seaborn中,哪个函数用于绘制两个变量之间的散点图,并可以使用颜色和标记来表示分组变量?(B)A.sns.barplot()B.sns.scatterplot()C.sns.regplot()D.sns.heatmap()4.(多选)Seaborn可以绘制哪些类型的统计图表?(ACD)A.散点图B.树图C.箱线图D.热力图5.(多选)调整Seaborn图形中文字体的方法有哪些?(AD)A.设置样式主题B.保存为svg格式C.使用中文字体D.设置坐标轴标签字体二、判断题1.Seaborn是一个建立在Matplotlib之上的数据可视化库。(正确)2.在Seaborn绘图流程中,设置画布参数是在导入绘图模块之后进行的。(错误)3.直方图可以用来展示两个连续型变量之间的关系。(错误)4.seaborn无需导入matplotlib即可使用。(错误)5.pairplot()可用于绘制散点图矩阵。(正确)三、绘制图形题1.使用直方图展示评分分布情况。首先,导入必要的库:importmatplotlib.pyplotasplt和importseabornassns.读取数据:df=pd.read_csv('data/cook.csv').设置画布:plt.figure(figsize=(6.4,4.8)).使用sns.distplot()绘制直方图,并添加参数设置:sns.distplot(df['评分'],bins=20,color='blue',kde=True,hist_kws={'color':'g','label':'直方图'},kde_kws={'color':'b','label':'密度曲线'}).设置标题和标签:plt.title('评分分布直方图'),plt.xlabel('评分'),plt.ylabel('频数').添加图例:plt.legend().展示图形:plt.show().2.使用散点图展示用料数与评分关系。使用散点图来展示两个连续型变量之间的关系。导入所需库和数据。使用sns.scatterplot()绘制散点图,设置横轴为"用料数",纵轴为"评分",同时使用"难度"列来着色不同难度的点:sns.scatterplot(x='用料数',y='评分',hue='难度',data=df,palette='Set1').添加标题和标签:plt.title('用料数与评分关系'),plt.xlabel('用料数'),plt.ylabel('评分').添加图例:plt.legend().展示图形:plt.show().3.使用热力图展示不同菜系、难度与平均评分的关系。首先,对数据进行透视,以便得到一个适合绘制热力图的数据格式。使用pd.pivot_table()函数创建一个透视表,索引为"菜系",列为"难度",值为"评分"的平均值:heatmap_data=df.pivot_table(index='菜系',columns='难度',values='评分',aggfunc='mean').绘制热力图:sns.heatmap(heatmap_data,cmap='YlGnBu',annot=True,fmt=".2f").添加标题:plt.title('菜系与难度的平均评分').展示图形:plt.show().4.使用小提琴图展示不同菜系的评分分布。导入所需库和数据。使用sns.violinplot()绘制小提琴图,设置横轴为"菜系",纵轴为"评分",并选择一个颜色渐变的调色板:sns.violinplot(x='菜系',y='评分',data=df,palette='viridis').添加标题和标签:plt.title('不同菜系的评分分布'),plt.xlabel('菜系'),plt.ylabel('评分').展示图形:plt.show().实训使用Seaborn可视化分析产品销售数据。一、实训目的通过这个实训,读者将学习使用Seaborn对公司业务数据进行可视化分析,如产品销售数据的可视化。这可以帮助直观地发现数据之间的关系和规律,为商业决策提供支持。二、实训步骤步骤1:导入Seaborn库导入Seaborn库,为可视化分析做准备。步骤2:加载销售数据读取包含产品和不同区域销售数据的csv数据。步骤3:绘制销售热力图使用heatmap()可视化产品与区域之间的销售关系。步骤4:绘制销售分布图使用distplot()查看各产品销售额的分布情况。步骤5:绘制产品销售关系图使用pairplot()展示不同产品之间的销售相关性。通过学习使用Seaborn的可视化功能分析商业数据,读者可以掌握数据可视化的技巧,从大量数据中获取有价值的信息,为商业决策提供数据支持。产品销售数据:#产品信息products=['手机','电脑','汽车']#区域信息regions=['东部','西部','南部','北部']#销售数量sales_data=[[2500,3000,5000,8000],[1500,2000,3000,4000],[8000,9000,15000,20000]]#将数据装换为DataFramedata=pd.DataFrame(sales_data,index=products,columns=regions)代码实现:#导入Seaborn库importseabornassns#读取销售数据data=pd.read_csv('product_sales.csv')#绘制热力图sns.heatmap(data=data,annot=True)plt.title("产品销售热力图")plt.savefig('product_sales_heatmap.png')#绘制销售分布图sns.distplot(data['销售量'])plt.title("产品销售量分布图")#绘制产品销售关系图sns.pairplot(data)plt.title("产品销售量关系图")以上代码示例了使用Seaborn库对产品销售数据进行可视化分析的过程,包括绘制热力图、分布图和关系图。通过可视化可以清晰地展示产品与区域之间的销售关系,不同产品之间的销售相关性等信息,为商业决策提供数据支持。咖啡销售情况分析本章习题一、简答题1.为什么需要数据清洗?数据清洗是数据分析的重要步骤之一,它的目的是去除数据中的噪声、错误和不完整的部分,以保证数据的质量和可靠性。清洗数据可以消除潜在的错误影响,确保分析的准确性,提高后续决策的可靠性。 2.什么是数据可视化?数据可视化是将数据通过图表、图像等形式转化为可理解的视觉形态的过程。它帮助人们更容易理解和分析数据,揭示数据之间的关系、模式和趋势,从而支持更深入的洞察和决策。二、计算题1.计算缺失值百分比。答案:importpandasaspd#读取数据data=pd.read_excel("data/某咖啡公司销售数据.xlsx")#计算每列的缺失值百分比missing_percent=(data.isnull().sum()/len(data))*100#输出结果print(missing_percent)2.计算平均利润率。答案:average_profit_rate=data['利润率'].str.rstrip('%').astype(float).mean()print("平均利润率:",average_profit_rate)实训当使用Python来实现商业上的数据分析例子时,我们可以以客户细分为例。以下是一个可能的实训内容,包括实训目的和实训步骤。 实训目的:实训的目的是通过使用Python进行客户细分分析,将客户分成不同的群组,以便更好地定制营销策略和服务。学习者将学会数据预处理、特征选择、聚类分析等关键技术。实训步骤:1.数据收集和理解:收集客户相关的数据,如消费金额、购买频率、地理位置等信息,理解数据的结构和含义。2.数据预处理:进行数据预处理,处理缺失值、异常值,进行特征缩放等。将数据转换成适合分析的格式。 #示例:数据预处理importpandasaspd#读取数据data=pd.read_csv("customer_data.csv")#处理缺失值data=data.dropna()#特征选择features=data[["Total_Spending","Purchase_Frequency","Location"]]#特征缩放fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()features_scaled=scaler.fit_transform(features) 3.数据分析:使用聚类算法将客户分成不同的群组,如K均值聚类、层次聚类等。#示例:数据分析fromsklearn.clusterimportKMeansnum_clusters=3kmeans=KMeans(n_clusters=num_clusters)clusters=kmeans.fit_predict(features_scaled)data["Cluster"]=clusters 4.结果可视化:绘制不同客户群组的特征分布图,以便观察不同群组的特点。#示例:结果可视化importmatplotlib.pyplotaspltimportseabornassnsplt.figure(figsize=(10,6))sns.scatterplot(x="Total_Spending",y="Purchase_Frequency",hue="Cluster",data=data)plt.xlabel("TotalSpending")plt.ylabel("PurchaseFrequency")plt.title("CustomerSegmentation")plt.show() 5.分析结果应用:根据分析结果,定制不同的营销策略和服务,以满足不同客户群组的需求。通过这个实训,学习者将学会如何使用Python进行客户细分分析,从数据预处理、特征选择到聚类分析的全过程。这将帮助他们在商业实际中应用数据分析技术来优化营销和服务策略。员工离职预测本章习题一、简答题1.什么是员工离职预测?员工离职预测是一种通过分析员工的绩效和薪酬等指标,预测员工可能离职的风险,并采取相应措施来留住员工的方法。2.Scikit-Learn中的估计器是什么?估计器是Scikit-Learn中的对象,用于实现算法并对数据进行拟合和预测。它包括常用的算法,如线性回归、逻辑回归、支持向量机等。二、计算题1.假设你有一个包含5个样本的特征矩阵X_train,如下所示:X_train=[[0.5,0.8,0.2],[0.3,0.6,0.7],[0.1,0.4,0.9],[0.7,0.2,0.4],[0.9,0.3,0.6]]使用MinMaxScaler对这个特征矩阵进行归一化处理,将特征值缩放到0到1之间。请计算归一化后的X_train。答案:MinMax归一化处理:fromsklearn.preprocessingimportMinMaxScaler#原始特征矩阵X_train=[[0.5,0.8,0.2],[0.3,0.6,0.7],[0.1,0.4,0.9],[0.7,0.2,0.4],[0.9,0.3,0.6]]#构建MinMaxScaler对象scaler=MinMaxScaler()#对特征矩阵进行归一化处理X_train_normalized=scaler.fit_transform(X_train)print(X_train_normalized)归一化后的特征矩阵X_train_normalized:[[0.50.80.][0.20.60.8][0.0.41.][0.80.0.4][1.0.20.6]]2.假设你有一个逻辑回归模型estimator,并且已经使用测试集x_test进行了预测,得到了预测结果y_pred,如下所示:y_pred=[0,1,0,1,0,1,1,0,1,0]同时,测试集的真实标签y_test为:y_test=[0,1,1,1,0,0,1,0,0,1]请计算模型的准确率。答案:模型准确率计算:fromsklearn.metricsimportaccuracy_score#模型预测结果y_pred=[0,1,0,1,0,1,1,0,1,0]#真实标签y_test=[0,1,1,1,0,0,1,0,0,1]#计算模型准确率accuracy=accuracy_score(y_test,y_pred)print("模型准确率:",accuracy)模型的准确率为:0.7实训实训目的:实训的目的是通过使用Scikit-Learn建立一个房价预测模型,从房屋特征中预测房屋的销售价格。学习者将学会数据预处理、模型构建、训练和评估等关键步骤。实训步骤:1.数据收集和理解:收集房屋特征数据和对应的房屋销售价格数据,理解数据的结构和含义。2.数据预处理:进行数据预处理,处理缺失值、异常值,进行特征缩放等。将数据转换成适合模型输入的格式。#示例:数据预处理importpandasaspdfromsklearn.model_selectionimporttrain_test_split#读取数据data=pd.read_csv("housing_data.csv")#处理缺失值data=data.dropna()#分割特征和目标X=data.drop("Price",axis=1)y=data["Price"]#特征缩放fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()X_scaled=scaler.fit_transform(X) 3.数据集划分:将数据划分为训练集和测试集,通常将一部分数据用于训练模型,另一部分用于评估模型性能。#示例:数据集划分X_train,X_test,y_train,y_test=train_test_split(X_scaled,y,test_size=0.2,random_state=42)4.模型构建:使用Scikit-Learn构建预测模型,如线性回归、决策树回归等。#示例:模型构建fromsklearn.linear_modelimportLinearRegressionmodel=LinearRegression() 5.模型训练:使用训练集来训练模型。#示例:模型训练model.fit(X_train,y_train)6.模型评估:使用测试集来评估模型的性能。#示例:模型评估fromsklearn.metricsimportmean_squared_errory_pred=model.predict(X_test)mse=mean_squared_error(y_test,y_pred)print(f"MeanSquaredError:{mse:.4f}") 7.结果可视化:绘制模型预测值与真实值的对比图,以便观察模型的预测效果。#示例:结果可视化importmatplotlib.pyplotaspltplt.figure(figsize=(10,6))plt.scatter(y_test,y_pred)plt.xlabel("TruePrices")plt.ylabel("PredictedPrices")plt.title("TruePricesvs.PredictedPrices")plt.show()航班乘客数预测本章习题一、简答题1.什么是LSTM模型?答:LSTM(LongShort-TermMemory)模型是一种深度学习模型,适用于处理时间序列预测问题。它能够捕捉时间序列数据中的长期依赖关系和波动,常用于航班乘客数预测等应用。2.PyTorch中的自动微分是什么?答:PyTorch提供了自动微分功能,允许自动计算张量的梯度。通过将requires_grad设置为True,PyTorch会跟踪张量的计算历史,并且可以使用.backward()函数计算梯度。这对于模型训练和梯度下降等优化算法非常有用。二、计算题1.如果将一个形状为(3,4,5)的张量进行reshape为(2,15),结果中的元素如何排列?解决方法:importtorch#创建一个形状为(3,4,5)的张量original_tensor=torch.arange(1,61).reshape(3,4,5)#使用view函数进行reshapereshaped_tensor=original_tensor.view(2,15)#打印原始张量和reshape后的张量print("原始张量:\n",original_tensor)print("\nreshape后的张量:\n",reshaped_tensor)2.假设你有一个训练集的输出结果train_y,其中包含了前10个时间步的乘客数(单位为千人),如下所示:train_y=[120,130,140,150,160,170,180,190,200,210]。现在你想将这些乘客数转换成百万人,即除以1000,得到一个新的张量。请使用PyTorch完成这个计算,并输出结果。解决方法:importtorchtrain_y=torch.tensor([120,130,140,150,160,170,180,190,200,210])train_y_million=train_y.float()/1000.0#将整数张量转换为浮点型,然后除以1000print(train_y_million)输出结果:tensor([0.1200,0.1300,0.1400,0.1500,0.1600,0.1700,0.1800,0.1900,0.2000,0.2100])实训实训目的:实训的目的是通过使用PyTorch建立一个销售预测模型,从历史销售数据中预测未来销售额。学习者将掌握如何准备数据、构建神经网络模型以及训练和评估模型。实训步骤:1.数据收集和理解:收集历史销售数据,理解数据的结构和含义。数据应包括销售额、时间戳等信息。2.数据预处理:进行数据预处理,处理缺失值、异常值,进行数据平滑等。将数据转换成适合模型输入的格式。#示例:数据预处理importpandasaspdfromsklearn.model_selectionimporttrain_test_split#读取数据data=pd.read_csv("sales_data.csv")#处理时间戳data['timestamp']=pd.to_datetime(data['timestamp'])data.set_index('timestamp',inplace=True)#分割训练集和测试集train_data,test_data=train_test_split(data,test_size=0.2,shuffle=False)3.特征工程:提取与销售预测相关的特征,如历史销售数据、季节性特征等。#示例:特征工程importnumpyasnpdefcreate_sequences(data,seq_length):sequences=[]targets=[]foriinrange(len(data)-seq_length):seq=data[i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论