大数据分析技术 习题答案汇总( 李俊翰 ) 项目1--7.docx
大数据分析技术习题答案1 .大数据分析的基础包含哪五个方面?(1)数据挖掘与分析从广义的角度出发,数据挖掘算法是大数据分析的重要核心内容。只有特定的数据挖掘算法 处理不同业务场景所产生的数据类型和结构,才能获得高质量的价值数据。同时,随着数据 挖掘算法地不断优化,使其能够处理更多、更大和更复杂的数据内容。(2)数据可视化分析大数据可视化分析因其直观,易读,易理解,不仅被大数据分析科学家使用,也大量地使用 在普通客户的业务需求之中。大数据可视化分析能够非常高效地将晦涩难懂,抽象的数据, 以清晰、直接的各种图形和表格非常简单描述出数据背后所蕴含的丰富故事。(3)预测分析大数据预测分析是大数据分析的重要应用,通过应用数据挖掘算法找到特定业务领域的大数 据特点,并建立符合行业特征的数据模型,实现对未来业务数据进行有效的预测,帮助优化 不同行业、企业的经营和决策。(4)语义分析大数据语义分析用于对网络数据的分析和挖掘,通过对用户不同行为产生的不同数据,例如, 评论关键词、搜索关键词、产品关键词等特定行业的上下文语义,有针对性地分析和判断用 户需求和行为模式,为企业和用户提供更好的服务和体验。(5)数据分析和质量管理大数据不仅仅只有海量的数据,更需要其高质量的数据和数据管理作为重要支撑。高质量的 数据能够更加精准地针对特定业务数据提供更有价值的数据分析结果。2 .大数据分析有什么作用?(1)进一步提升工作效率面对需要处理的海量数据,不仅需要花费大量的人力、物力和财力对其进行有效存储、管理 和维护,还要对其实施有效地分析处理才能发现变量和常量等数据之间隐藏的内在关联。因 此,数据分析能够通过正确的呈现方式,将数据之间千丝万缕的关系和规律进行简单地描述, 从而提升工作效率。(2)让业务和数据变得更加易于理解、可读传统的数据库管理系统往往不能非常直观地呈现出数据整体和局部的状态和联系。不仅对于 专业数据科学家,还包括普通用户,要及时,高效地理解和掌握某个领域或业务当中海量的 结构化数据表,甚至是半结构化和非结构化的数据,都是十分困难的事情。通过应用大数据 分析技术能够让复杂的数据变得可读、可理解,有利于数据工作者和客户能够对数据进行更 优化的归纳和总结,并使得特定的业务数据变得更加有逻辑,条理更加清晰。(3)业务开展更加精准大数据分技术的目的就是为了在海量数据之中发现知识,用科学的统计方法帮助人们精准定 位业务过程中可能存在的问题和机会,从而防止了业务实施过程中的失误,使得业务实施的 路线和方向更加明确和精准。3 .大数据分析有哪些技术?(1) Python.简述HADOOP框架。Hadoop是主流的大数据存储和分析平台之一。它是来源于Apache基金会以Java编写的开 源分布式框架工程。其核心组件是IIDFS、YARN和MapReduce,其它组件为:HBase> HIVE> Zookeeper> Spark> Kafka> Flume、Ambari> 和 Sqoop 等。这 些组件共同提供了一套完成服务或更高级的服务。Hadoop可以将大规模海量数据进行分布式并行处理。Hadoop具有高度容许错性、可扩展性、 司可靠性和稳定性。1 .简述HADOOP核心组件和工作原理。HADOOP有三个核心组件:HDFS (数据存储)、MapReduce (分布式离线计算)和YARN (资源 调度)(1) HDFS (Hadoop Distributed File System) Hadoop 分布式文件系统HDFS属于Hadoop的底层核心组件。它是分布式文件系统的一种,并具备以下特点:海量数据和流式数据访问读写交互能力高度容错能力移动计算部署方便(2) MapReduce是建立在HDFS之上的数据映射和化简并行处理技术。它是一种具有线性特 质的,可扩展的编程模型。它对网络服务器日志等半结构化和非结构化数据的处理非常有效。MAP和REDUCE分别代表 两种函数。前者主要负责将一个任务进行碎片化处理,后者主要负责将各种碎片化信息进行重组汇总。(3) YARN (Yet Another Resource Negotiator)或第二代 MapReduce由于第一代MapReduce存在一定的局限性,例如Jobtracker既要负责资源管理,又要监控、 跟踪、记录和控制任务,成为整个MapReduce的性能瓶颈。最重要的是,第一代MapReduce在系统的整体资源利用率 方面相对较低。因此,为了优化和提升MapReduce的性能和资源利用率,Hadoop引入了 YARN专门用于整合 Hadoop集群资源,并支持其他分布式计算模式。YARN 的组成局部主要由三个组件:ResourceManager> NodeManager 和 ApplicationMaster。2 .简述HIVE、Spark和HBase的特点。(1)Hive具有如下特点:可扩展性由于Hive是建立在Hadoop之上,因此有与Hadoop集群一样的扩展性。Hive可以在不用重 新启动服务的前提下实现集群规模的自由扩展。可延展性Hive可以通过编写更加灵活多样的HQL语言实现比MapReduce更丰富的函数。容错性Hive可以使用Hadoop集群的超强冗余性实现数据的容错性。Hive本身的元数据那么存放在 mysql数据库中。(2) Spark具有如下特点:运行速度快Spark使用基于高速缓存的分布式实时计算框架。与MapReduce不断重复使用磁盘输入输出 保存计算结果相比,Spark最大优势在于能够高效地使用高速缓存进行迭代重复计算。只有 在内存缺乏的情况,Spark才会使用磁盘输入和输出。简单易用可以通过Java, Scala, Python, R和SQL等不同语言快速去编写Spark程序,允许开发人员 使用自己熟悉的语言编写Spark程序,极大地提升了 Spark的普及范围。同时,Spark自带 80多个高级操作符,能够更容易地创立Spark并行应用程序,并能够与Java, Scala, Python, R 和SQL shell交互。普适通用Spark是一个分布式计算框架,不仅能够实现MapReduce的场景功能,更能在更多业务场景 中展露头角。Spark既有可以实现离线计算的Spark SQL模块,也有可以实现实时计算的 Spark Streaming模块以及封装了常用的机器学习库Mlib和图计算库Graphxo 运行方式多样性Spark有两种运行方式:StandAlone和YARN。在StandAlone模式下用户可以在Hadoop集 群的一组或全部机器中静态分配资源,与Hadoop MR同时运行,用户可以在HDFS上运行专 属的Spark任务。 在YARN模式中,Hadoop用户可以简单的把Spark运行在YARN中,像 其他运行在Spark上层的模块一样充分利用Spark的强大计算能力。(3) HBase具有如下特点:高可靠性HBase基于Hadoop的HDFS分布式文件架构,具有极强的可靠性。高性能HBase是面向实时查询的分布式数据库,能够非常高效地查询和写入数据,实现高并发和实 时处理数据。弹性可扩展HBase建立在Hadoop的HDFS之上,通过线性方式从下到上灵活地增删节点来进行扩展,并 且被众多企业广泛地使用在缓存服务器方面。面向列的操作HBase面向列来进行存储和查询的,包括:行键(Row Key) 列族(Column Family)、列 修饰符(Column Qualifier)、数据(Value)和时间戳(TimeStamp)和类型(Type),# 4.简述 Kafka、Flume、Sqoop 和 Zookeeper 的组织架构。(1)Kafka生产者Producer:用于向Kafka集群以Topic的方式发送消息。主题Topic: 一个Topic类似于一个消息流的名字。消费者Consumer:用于不断地向Kafka集群接收并处理消息流。(2)FlumeSource:数据的来源和方式Channel:数据的缓冲池Sink:定义了数据输出的方式和目的地Flume的关键流程是首先通过source获取到数据源的数据,然后将数据缓存在Channel当 中以保证数据传输过程中不丧失,最后通过Sink将数据发送到指定的位置。(3)SqoopSqoop Server:所有的连接器Connectors都安装在Sqoop Server上便于统一管理。其中, Connectors负责数据读写,Metadata负责管理数据库的元数据。Sqoop Client:通过浏览器或者CLI实现客户端的REST API、JAVA APR WEB UI以及CL I 控制台与Sqoop Server的交互。(4)ZookeeperLeader:所有Zookeeper服务器中只有一个Leader被选举出来,作为整个ZooKeeper集 群的主节点,其它节点都是Follower或Observer。Leader是所有应用程序事务请求的最高 协调和决定者,统一管理集群事物的执行顺序,保证整个集群内部消息处理的先进先出。Observer:主要应用于需要处理更多负载或者跨机房的应用场景用于提升系统可扩展性, 提升读取速度,但Observer不参与选举投票。Follower:接收Client的请求,返回响应给Client,并参与Leader的选举投票。Client:事务请求发送者.请简要介绍一下机器学习的开发流程。(1)获取数据:从指定数据源获取业务数据(2)数据预处理:对源数据进行数据清理(处理缺失值、重复值和逻辑错误值)、数据集 成(处理实体数据识别和冗余问题)、数据规约(用较小的数据替换较大的源数据)(3)特征工程:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。 其目的是最大限度地从原始数据中提取特征以供算法和模型使用。(4)模型训练:通过导入指定的特征数据,对模型进行训练和优化。(5)模型评估:使用损失函数对模型进行评估。(6)应用预测:将测试数据导入评估后的模型中进行检验。1 .请简要介绍一下机器学习的实施步骤。(1)针对具体的业务需求,选择合适的基本模型。模型就是一组用于处理具体业务数据的 函数。(2)模型在数据的训练下不断被优化,但衡量这组函数质量优劣的标准就叫做损失函数。 损失函数适用于不同的具体业务需求的,回归问题可以使用平方误差损失函数和绝对值误差 损失函数,分类问题可以使用交叉端损失函数。(3)在具体业务场景中找到一个最合适的模型是机器学习的关键,常用的方法有梯度下降 法、最小二乘法实现局部或全局最优。(4)将最合适的模型应用到该业务的最新数据当中,检验其效果。2 .机器学习常用算法分为哪两大类?机器学习算法主要分为两大类:有监督学习和无监督学习。有监督学习带有目标数据(即有 标准答案),无监督数据不需要目标数据(无标准答案)。有监督学习可以再分为回归和分类,无监督学习可以再分为降维和聚类。3 .请介绍一下朴素贝叶斯的基本思想和特点。朴素贝叶斯算法是一个常见的分类算法,比拟适用于垃圾邮件过滤、文本分类或拼写查错等 领域。朴素贝叶斯的最大特点就是:特征条件独立假设。该假设独立看待当前每一个条件指标与待分类项的概率关系,并不关心各个条件指标之间有无依赖关系。例如, 一般情况下,银行会根据客户的月收入、信用卡额度、房车情况等不同方面的特征综合判断是否给客户办理贷款手续。因为一般对于月收入较高的客户来说,信用卡额度 和房车情况都是比拟良好的状态。月收入和信用卡额度和房车情况存在很高的相关性。然而朴素贝叶斯算法会忽略这种特征之间的内在关系,直接认为客户的月收入、房 产与信用卡额度之间没有任何关系,三者是各自独立的特征,而只从这三个指标各自对是否办理贷款的影响概率大小去判断。4 .请介绍一下K均值聚类算法的基本思想和计算过程。基本思想:在数据样本中首先设定K个样本点作为聚类的中心点,然后通过比照每个中心点 与周围数据点距离的大小,决定数据点归属的类别,把每个数据点分配给距离它最近的聚类 中心。根据这种聚类方式,每次吸纳了新的数据点后,便重新计算当前聚类中心的位置(各 数据点到中心点的平均距离),直到满足指定的聚类终止条件为止。终止条件包括:没有(或最小数目)数据点被分配给不同的聚类、聚类中心不再发生变化或到达误差平 方和局部最小。计算过程:根据具体业务数据选择K个数据点作为聚类中心点。计算所有数据点与K个数据点的距离。将离聚类中心点最近的数据点归为同一类。重新计算新类中的聚类中心点位置。重复(2) (3)步骤,直到到达聚类终止条件。5 .请介绍一下“啤酒与尿布”故事。在美国沃尔玛连锁店超市的真实案例,沃尔玛拥有世界上最大的数据仓库系统,集中了其各 门店的详细原始交易数据。通过对消费者购物行为数据进行分析时发现,男性顾客在购买婴儿尿片时,会顺便购买几瓶啤酒,于是推出了将啤酒和尿布放在一起的促 销手段。揭示了一个隐藏在尿布与啤酒背后的美国人的一种行为模式。Python拥有非常成熟的技术和资源社区,能够在数据分析和处理、人工智能以及数据可视 化等方面提供强大的技术支持。大数据业务流程的数据采集、数据存储、数据分析、数据处 理以及数据可视化都是应用Python及其类库实现的。Python比拟著名的类库和工具有: Numpy、 Pandas> Matplotlib> Scikit-learn 等。(2) NumpyNumpy是Python中的一个矩阵计算包,提供了非常强大的数组ndarray及其相应的处理函 数ufunc,使其能够在高效地应用内存的前提下,非常快速地创立N维数组,并提供矢量化 数学运算,实现不编写特定循环的情况下对整个数组进行标准运算操作。Numpy的出现不仅 极大地弥补了 Python在操作列表数据类型进行数值运算过程中比拟耗费内存和CPU计算资 源的问题,而且很好的补充了 Python的array模块不能支持多维数组及其运算的缺乏。(3) PandasPandas是建立在Numpy之上的一个Python数据分析包,拥有强大的数据分析功能,包含 Series>DataFrame等高级数据结构和工具。Pandas纳入了大量的库和一些标准的数据模型, 提供了高效操作大型数据集所需要的工具。Pandas提供了大量快速便捷的函数和方法。其 中,Pandas拥有的坐标轴特点能够支持数据自动对齐,高效提升不同数据源的数据探索和 检索,防止了数据处理过程中出现的问题。(4) MatplotlibMatplotlib是基于Numpy的一套Python包,拥有非常丰富的可视化图形库和工具,通过强 大的接口能够实现绘制满足不同数据类型和业务需求的专业图形,并且能支持多种操作系统 的不同GUI后端,输出的图形格式可以是PDF, SVG, JPG, PNG, BMP, GIF等。(5) Scikit-learnScikit-learn是一个基于Python语言的机器学习开源框架。sklearn中包含了大量的优质 的数据集,在学习机器学习的过程中,可以通过使用这些数据集实现出不同的模型。(6) Hadoop及其主要生态圈Hadoop是大数据技术重要代表之一。它是来源于Apache基金会以JAVA编写的开源分布式 框架工程。其核心组件是HDFS、YARN和MapReduce,其它组件为:HBASE、HIVE、ZOOKEEPER 和SQOOP等。这些组件共同提供了一套完整服务或更高级的服务。Hadoop可以将大规模海 量数据进行分布式并行处理。Hadoop具有高度容错性、可扩展性、高可靠性和稳定性,让 Hadoop成为最流行的大数据分析系统。4 .大数据分析有哪些流程?(1)问题识别在开展大数据分析之前,首先应该明确具体任务以及需要解决的问题。只有以解决问题为导 向,才能更加清晰、有效地围绕问题开展数据分析工作。(2)数据可行性数据可行性是指根据识别的问题所需要得到的数据是否具有较高可靠性和可用性以及数据过度拟合问题。数据可行性需要把握三个细节: 明确数据的体量和专业领域明确抽象概念和具体指标数据的映射关系 明确具体业务中的代表性数据数据准备数据准备需要具体落实每个数据的具体作用和所代表的具体内涵,可以说大数据分析的大部 分时间都是花费对数据的准备过程中。具体分数据采集和数据预处理。数据采集:在这个数据爆炸的时代,不管是提供底层基础架构的云计算,还是实现各种 人工智能应用,都离不开其核心的源泉:数据。由于物联网海量的穿戴设备、网络多媒体平 台以及电子商务平台中的数据太多、太宽泛,人们需要通过特殊的技术和方法实现在海量的 数据中到真正有价值的数据,从而为下一步大数据分析业务提供数据支撑。因此,数据 采集是直接获取数据的桥头堡。数据预处理:数据预处理主要是指在对数据开展具体分析和挖掘之前对数据进行的一些 处理。数据预处理有四个任务,数据清洗、数据集成、数据变换和数据规约。数据清洗:根据具体业务规那么制定针对性的数据清洗规那么,包括检测和去除数据集中的噪声 数据和无关数据,处理遗漏数据,去除空白数据域或者是知识背景下的空值。数据集成:根据具体业务需要,将不同结构和类型的数据,例如,不同数据库和不同格式的 普通文件有机地结合在一起,使之能够为特定业务领域提供高质量的数据共享服务。例如, 数据仓库模式就是一种数据集成方式。它是面向主题的,集成的,相对稳定的数据集合。 数据变换:根据具体大数据分析框架或技术的要求,结合具体业务的描述,将数据进行特定 地转换,使之更符合大数据分析框架的特点和业务的需求方式。数据规约:根据业务需求对原始数据进行量身裁剪,实现数据既能够很好地保持数据的完整 性,又能够从数据维度、数量和体机方面得到有效地缩减。(4)数据模型数据模型是用经过设计之后的数据对现实世界特征的描述和呈现。数据模型能够很好地将现 实世界中需要处理的问题通过计算机能够识别的方式进行高效地的处理。数据模型的建立需 要结合业务模型、数据分析模型以及专家的经验判断。另外,还要考虑当前的运算能力是否 满足数据模型的运算需求。(5)分析结果大数据分析的结果作为重要结论分为定性和定量的评估结果,分析结果必须要能够严谨可靠 且符合业务决策需求。5 .大数据分析有哪些主要模型?(1)比照分析模型在特定业务背景知识中将多个数据进行比拟,从而发现和揭示事物的变化开展规律。比照分 析比拟简单,能够相对简单地比拟数据之间的联系,分析操作步骤较少,能够非常直观的呈 现不同数据的异同之处,能够精准表示数据之间度量值的差距。比照标准是比照分析的主要 抓手,将比照对象的指标与标准进行比照,就能得出有结果了。目前常用标准是时间标准、 空间标准、特定标准。例如,今年10月的某商品销售数量和去年10月的销售数量进行比照 就是基于时间标准的比照分析;不同城市之间对于共享单车的接受程度就是基于空间标准的 比照分析;应用专家经验判断的数据标准与当前领域数据的比照就是基于特定标准的比照分 析。(2)分类分析模型分类分析通过给与不同类型的数据不同的成员资格,从而将数据分成不同类别的群体,其目 的是将未知类别的数据更好地向某一个类进行归纳,并按其接近归纳的程度细化分类质量。 例如,通过分类分析模型区别垃圾邮件和非垃圾邮件;通过糖尿病患者某些数据指标(血糖, 血压,心率等)判断是否患有糖尿病。(3)关联分析模型通过分析变量之间的关系发现数据之间隐含的联系,包括明确自变量和因变量的因果变化规 律或者变量之间相关性、方向性和紧密程度等。作为数据挖掘的重要技术,通过分析顾客的 消费数据,发现其内在偏好规那么,为商家提供有价值的销售策略。关联分析的应用案例非常 多,例如,比拟著名的啤酒与尿布,人们发现在超市里面购买尿布的男性顾客也会同时购买 啤酒,因此把啤酒和尿布放在同一个货架上进行销售。(4)综合分析模型综合分析模型是将多个指标综合应用在复杂数据环境中,通过分析研究对象个主要局部及其 特征,并以整合宏观知识结构和突出局部知识重点的思维方式进行定性或定量分析判断,将 多个指标数据整合为针对某一个综合评价的指标,从而揭示和发现复杂业务数据或现象总体 或一般特征或关系。例如,分析和评价人民幸福程度、学生综合素质和某行业开展前景报告 等。1 .简述Python语言与其他数据分析工具的比拟(1)与Excel相比,Python通过调用强大的数据分析和处理模块,实现灵活处理更大数据 集的报表数据,并能够进一步自动地实现数据分析和建立更加复杂的机器学习模型。(2)与R语言拥有过于分散和相对杂乱的机器学习库相比,Python有着更为集中和高效的 机器学习框架ScikitTearn。这让Python更容易被理解和掌握。因此,Python的机器学习 和数据统计分析用户社区和群体在近几年不断攀升。(3)与SPSS相比,Python能够处理更为庞大和复杂的数据结构,以及适应更为复杂的数 据分析业务场景。SPSS是一款优秀的统计软件,主要应用在科学实验方面的数据分析场景。(4) Python在数据科学及其一整套技术框架上面优势十清楚显,包括数据采集、数据存储 和管理、数据分析和处理、数据可视化、机器学习、人工智能、APP开发和运维等整套解决 方案。2 .简述基于Python的数据分析第三方库有哪些,分别有什么作用?基于Python的数据分析之所以强大,得益于其背后丰富的第三方库,开箱即用,方便快捷。 主要包括如下:(1) NumPyNumPy对Python最大的支持在于其很好地弥补了 Python对数据组的缺乏。NumPy能够高效 地创立N维阵列,并能够通过其丰富的函数对N维阵列进行处理。同时,NumPy中还包括基 本线性代数函数,傅里叶变换,高级随机数功能和集成工具等强大的数学科学计算工具。(2) PandasPandas拥有许多高级的数据分析功能,是Python下最强大的数据分析和探索工具。Pandas 带有高级的数据结构和精巧的工具,能够高效快速地处理数据,Pandas构建在NumPy之上, 强化和丰富了 NumPy的使用方式。(3) SciPySciPy依赖于NumPy,其主要作用在于拥有强大的对象和函数能够处理数据矩阵。SciPy的 高级数学计算模块包括:离散傅立叶变换,线性代数,稀疏矩阵、最优化、积分、插值、拟 合、信号处理与图像处理、常微分求解方程等。另外,SciPy还具有局部图形功能,能够向 MATLAB 一样绘制用于科学和工程计算的数据图形。(4) MatplotlibMatplotlib用于绘制大量图形的库,它可与NumPy一起使用,主要用于绘制二维图和局部 三维图像,包括:直方图、折线图和散点图等。Matplotlib是一个综合库,用于在Python 中创立静态,动画和交互式可视化。(5) Scikit-learnScikit-learn依赖于NumPy > SciPy > Matplotlib,主要包含用于机器学习的库。 Scikit-learn提供了丰富且完善的一整套机器学习流程和工具,包括数据预处理、分类、 回归、聚类、预测和模型分析。(6) StatModelsStatModels主要用于数据的统计分析和建模,为不同的数据类型提供了广泛统计,统计测 试,绘图功能和结果统计的列表。StatModels可以于Pandas交互使用实现数据挖掘组合。(7) SeabornSeaborn是构建在matplotlib的Python数据可视化库。通过提供丰富的API实现高级的统 计图形绘图功能。Seaborn和Matplotlib相互补充能够实现更多更有特色的图形。Seaborn 能够接受基于Numpy与pandas的数据结构,并于Scipy与Statsmodels等统计模式高度兼 容。3 .请安装Anaconda并运行Jupter Notebook之后,创立自己的第一个Python工程文档。 参见任务2安装Python的Anaconda发行版.请安装PyCharm,并配置Anaconda中的Python解释器,创立自己的第一个Python工程 文档。参见任务3掌握PyCharm安装和使用一*一 coding: utf-8 一*一 import numpy as np# 1.创立一个从016的3*3矩阵Z = np. arange(16). reshape (4,4)print (Z)2.创立一个值从20到69的数组,步长为2Z = np. arange (20, 69, 2)print (Z)# 3.生成一个6*6的对角矩阵Z = np. eye (6)print (Z)4.创立一个5*10的随机值数组,并找到最大值,最小值,平均值,标准差。Z = np. random, random (5, 10)Zmin, Zmax, Zmean, Zstd = Z. min(), Z. max (), Z. mean (), Z. std ()print(Zmin, Zmax, Zmean,Zstd)5.创立一个四边为1,中间为0的二维数组, Z = np. ones (5, 5)Zl:-1, 1:-1:= 0 print (Z)6.创立一个四边为0,中间为1的二维数组, Z 二 np. zeros (5, 5)Zl:-1, 1:-1 = 1 print(Z)7.如何计算(A+B)*(-A/2) ?A 二 np.ones *1B = np. ones (3)*2C = np.ones *3 np. add (A, B, out=B) np. divide (A, 2, out=A) np.negative (A, out=A) np. multiply (A, B, out'A)8.创立一个长度为5的数组,并做排序操作Z 二 np. random, random(5)Z. sort ()print (Z)9,求数组a的累计和,累计积a 二 np. arange (2, 50, 2)print(np. cumsum(a)print(np. cumprod(a)10.创立随机数组,并保存该数组为numpy二进制文件# 读取numpy二进制文件Z 二 np. random, random(5)np. save (' Z. npy,, Z)c = np. load (' Z. npy')print (c)任务3实训3.1 使用Pandas实现电影某地区票房数据分析。1 .获取指定的csv源数据2 .获取计算指定电影简单爱的上映天数及日均票房3 .将结果保存到movie data.dat文件中。# #将Python数组转换成numpy数组startTime_ndarray = np. array(startTime_list) endTime_ndarray = np. array(endTime_list) startTime = getDays(startTime_ndarray)endTime = getDays(endTime_ndarray)totalTime=endTime-startTime #计算开始到结束之间有多少天# 开始到结束之间有多少天print ('总上映天数:'+str (totalTime)for i in pf_list:#累计总票房total_pf += float(i)avg_pf = ' %. 6f' % float (total_pf/totalTime)print ('平均每天票房:'+avg_pf)将想要的数值写入dat文件中movie_data = open (' movie_data. dat', ' w')movie_data. write (' %d, %. 6f' %(totalTime, float (avg_pf)任务3练习题.获取csv源数据1 .处理和分析数据,实现游戏占比饼图.根据游每年戏销售数据实现散点图,折线图和柱状图# 一*一 coding: utf-8 一*一1.游戏销售数据可视化分析import pandas as pdimport numpy as np import matplotlib.pyplot as pit# 1980-2020data = pd. read_csv(,. /vgsales. csv9) print (data, info ()# 删除任意有空值的行,然后重置索引,再将年份这一列转成整型 data, dropna(how=,any', inplace=True)data. reset_index(drop=True, inplace=True)data' Year' = data' Year' . astype (' int,) print (data, info ()根据游戏发行商分组得出每个发行商发行的游戏数量 Genre_count = data. groupby(dataf Genre,).count ()Genre count, sort values C Rank , ascending=False, inplace=True) print(Genre_count) labels 二 Genre_count. index.tolist ()pie_data = Genre_countf Rank,. values. tolist()pit. reParams J font. sans-serif, = ' SimHei, explode = 0, 0, 0, 0, 0, 0, 0, 0, 0. 2, 0. 2, 0. 2, 0. 2 fig = pit. figure(figsize=(20,8), dpi=80) pit. pie(x二pie data,labels=labels,autopct=,%1. lf%> ,explode=explode ,startangle=50)pit. title(饼图例如-游戏类型占比) pit. show()sale_year = data. groupbyC Year,). sum() print(sale_year)x data=sale year, loc ' 2005,: 2015' ' Global_Sales,. index, astype (' int,). tolist () data_sale二sale_year. locf 2005' : 2015, ' Global_Sales,. values. astypeC int'). tolist () print(data_sale, x_data)fig = pit. figure(figsize= (10,8), dpi=80)pit. subplot (221) #> 2子图总行数2子图总列数1子图位置pit. plot (x_data, data_sale, color='r , ls=,5, lw=3) #ls (或 linestyle)设置线的样 式(-,-.)lw(或linewidth)设置线的粗细pit. xticks (x data:2)pit.subplot (222)pit. scatter (x_data, data_sale, label=,销售额(百万)',marker=', s=100) #s 点的大 小marker点的样式pit. xticks(x_data:2)pit. legend()pit.subplot (212)pit. bar(x data, data sale, color=,g , alpha=0. 6) #alpha 设置透明度(0-1 或 OTO) pit. xticks(x_data:2)plt.titleC销售额变化趋势')pit. show()