Python数据分析与应用(第2版)全书电子教案完整版课件.pptx
1熟悉熟悉Python数据分析的工具数据分析的工具目录目录认识数据分析认识数据分析2安装安装Python的的Anaconda发行版发行版3掌握掌握Jupyter Notebook常用功能常用功能4数据分析是指用适当的分析方法对收集来的大量数据进行分析,提取有用信息和形成结论,对数据加以详细研究和概括总结的过程。随着计算机技术的全面发展,企业生产、收集、存储和处理数据的能力大大提高,数据量与日俱增。而在现实生活中,需要将这些繁多、复杂的数据通过统计分析进行提炼,以此研究出数据的发展规律,进而帮助企业管理层做出决策。数据分析的概念数据分析的概念广义的数据分析包括狭义数据分析和数据挖掘。狭义数据分析是指根据分析目的,采用对比分析、分组分析、交叉分析和回归分析等分析方法,对收集的数据进行处理与分析,提取有价值的信息,发挥数据的作用,得到一个特征统计量结果的过程。数据分析的概念数据分析的概念数据分析的流程数据分析的流程数据分析已经逐渐演化为一种解决问题的过程,甚至是一种方法论。虽然每个公司都会根据自身需求和目标创建最适合的数据分析流程,但是数据分析的核心步骤是一致的。需求分析一词来源于产品设计,主要是指从用户提出的需求出发,挖掘用户内心的真实意图,并转化为产品需求的过程。产品设计的第一步就是需求分析,也是最关键的一步,因为需求分析决定了产品方向。错误的需求分析可能导致产品在实现过程中走入错误方向,甚至对企业造成损失。数据分析中的需求分析是数据分析环节的第一步,也是非常重要的一步,决定了后续的分析方向和方法。数据分析中的需求分析的主要内容是,根据业务、生产和财务等部门的需要,结合现有的数据情况,提出数据分析需求的整体分析方向、分析内容,最终和需求方达成一致意见。数据分析的流程数据分析的流程1.需求分析需求分析数据获取是数据分析工作的基础,是指根据需求分析的结果提取、收集数据。数据获取主要有两种方式:网络数据与本地数据。网络数据是指存储在互联网中的各类视频、图片、语音和文字等信息。本地数据则是指存储在本地数据库中的生产、营销和财务等系统的数据。本地数据按照数据时间又可以划分为两部分,分别是历史数据与实时数据。历史数据是指系统在运行过程中遗存下来的数据,其数据量随系统运行时间的增加而增长;实时数据是指最近一个单位时间周期(月、周、日、小时等)内产生的数据。在数据分析过程中,具体使用哪种数据获取方式,需要依据需求分析的结果而定。数据分析的流程数据分析的流程2.数据获取数据获取数据预处理是指对数据进行数据合并、数据清洗、数据标准化和数据变换,并直接用于分析建模的这一过程的总称。其中,数据合并可以将多张互相关联的表格合并为一张;数据清洗可以去除重复、缺失、异常、不一致的数据;数据标准化可以去除特征间的量纲差异;数据变换则可以通过离散化、哑变量处理等技术满足后期分析与建模的数据要求。在数据分析的过程中,数据预处理的各个过程互相交叉,并没有明确的先后顺序。数据分析的流程数据分析的流程3.数据预处理数据预处理分析与建模是指通过对比分析、分组分析、交叉分析、回归分析等分析方法,以及聚类模型、分类模型、关联规则、智能推荐等模型与算法,发现数据中有价值的信息,并得出结论的过程。在数据分析过程中,具体使用哪种数据获取方式,需要依据需求分析的结果而定。分析与建模的方法按照目标不同可以分为几大类。如果分析目标是描述客户行为模式的,那么可以采用描述型数据分析方法,同时还可以考虑关联规则、序列规则和聚类模型等。如果分析目标是量化未来一段时间内某个事件发生概率的,那么可以使用两大预测分析模型,即分类预测模型和回归预测模型。在常见的分类预测模型中,目标特征通常为二元数据,如欺诈与否、流失与否、信用好坏等。在回归预测模型中,目标特征通常为连续型数据,常见的有股票价格预测等。数据分析的流程数据分析的流程4.分析与建模分析与建模模型评价是指对于已经建立的一个或多个模型,根据其模型的类别,使用不同的指标评价模型性能优劣的过程。常用的聚类模型评价指标有ARI评价法(兰德系数)、AMI评价法(互信息)、V-measure评分、FMI评价法和轮廓系数等。常用的分类模型评价指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1值(F1Value)、ROC和AUC等。常用的回归模型评价指标有平均绝对误差、均方误差、中值绝对误差和可解释方差值等。模型优化则是指模型性能在经过模型评价后已经达到了要求,但在实际生产环境应用过程中,发现模型的性能并不理想,继而对模型进行重构与优化的过程。多数情况下,模型优化和分析与建模的过程基本一致。数据分析的流程数据分析的流程5.模型评价与优化模型评价与优化部署是指将数据分析结果与结论应用至实际生产系统的过程。根据需求的不同,部署阶段可以是一份包含了现状具体整改措施的数据分析报告,也可以是将模型部署在整个生产系统的解决方案。在多数项目中,数据分析师提供的是一份数据分析报告或一套解决方案,实际执行与部署的是需求方。数据分析的流程数据分析的流程6.部署部署企业使用数据分析解决不同的问题,实际应用的数据分析场景主要分为客户分析、营销分析、社交媒体分析、网络安全、设备管理、交通物流分析和欺诈行为检测7类。客户分析主要是根据客户的基本数据信息进行商业行为分析,首先界定目标客户,根据客户的需求、目标客户的性质、所处行业的特征和客户的经济状况等基本信息,使用统计分析方法和预测验证法分析目标客户,提高销售效率。其次了解客户的采购过程,根据客户采购类型、采购性质进行分类分析,制定不同的营销策略。根据已有的客户特征进行客户特征分析、客户忠诚度分析、客户注意力分析、客户营销分析和客户收益分析。通过有效的客户分析能够掌握客户的具体行为特征,将客户细分,使得运营策略达到最优,提升企业整体效益等。了解数据分析应用场景了解数据分析应用场景1.客户分析(客户分析(Customer Analytics)营销分析囊括了产品分析、价格分析、渠道分析、广告与促销分析这4类分析。产品分析主要是竞争产品分析,通过对竞争产品的分析制定自身产品策略。价格分析又可以分为成本分析和售价分析。成本分析的目的是降低不必要的成本;售价分析的目的是制定符合市场的价格。渠道分析是指对产品的销售渠道进行分析,确定最优的渠道配比。广告与促销分析则能够结合客户分析,实现销量的提升、利润的增加。了解数据分析应用场景了解数据分析应用场景2.营销分析(营销分析(Sales and Marketing Analytics)社交媒体分析是以不同的社交媒体渠道生成的内容为基础,实现不同社交媒体的用户分析、访问分析和互动分析等。用户分析主要根据用户注册信息、登录平台的时间点和平时发表的内容等用户数据,分析用户个人画像和行为特征。访问分析则是通过用户平时访问的内容分析用户的兴趣爱好,进而分析潜在的商业价值。互动分析根据互相关注对象的行为预测该对象未来的某些行为特征。社交媒体分析还能为情感和舆情监督提供丰富的资料。了解数据分析应用场景了解数据分析应用场景3.社交媒体分析(社交媒体分析(Social Media Analytics)大规模网络安全事件的发生,例如,2017年5月席卷全球的WannaCry病毒,让企业意识到网络攻击发生时预先快速识别的重要性。传统的网络安全主要依靠静态防御,处理病毒的主要流程是发现威胁、分析威胁和处理威胁,这种情况下,往往只在威胁发生以后系统才能做出反应。新型的病毒防御系统可使用数据分析技术,建立潜在攻击识别分析模型,监测大量网络活动数据和相应的访问行为,识别可能进行入侵的可疑模式,做到未雨绸缪。了解数据分析应用场景了解数据分析应用场景4.网络安全(网络安全(Cyber Security)设备管理同样是企业关注的重点。设备维修一般采用标准修理法、定期修理法和检查后修理法等方法。其中,标准修理法可能会造成设备过剩修理,修理费用高;虽然检查后修理法解决了修理费用成本问题,但是修理前的准备工作繁多,设备的停歇时间过长。目前企业能够通过物联网技术收集和分析设备上的数据流,包括连续用电、零部件温度、环境湿度和污染物颗粒等多种潜在特征,建立设备管理模型,从而预测设备故障,合理安排预防性的维护,以确保设备正常工作,降低因设备故障带来的安全风险。了解数据分析应用场景了解数据分析应用场景5.设备管理(设备管理(Plant and Facility Management)物流是物品从供应地向接收地的实体流动,是将运输、储存、装卸搬运、包装、流通加工、配送和信息处理等功能有机结合起来从而实现用户要求的过程。用户可以通过业务系统和GPS定位系统获得数据,使用数据构建交通状况预测分析模型,有效预测实时路况、物流状况、车流量、客流量和货物吞吐量,进而提前补货,制定库存管理策略。了解数据分析应用场景了解数据分析应用场景6.交通物流分析(交通物流分析(Transport and Logistics Analytics)身份信息泄露及盗用事件逐年增长,随之而来的是欺诈行为和交易的增多。公安机关、各大金融机构、电信部门可利用用户基本信息、用户交易信息和用户通话短信信息等数据,识别可能发生的潜在欺诈交易,做到提前预防、未雨绸缪。以大型金融机构为例,通过分类模型分析方法对非法集资和洗钱的逻辑路径进行分析,找到其行为特征。聚类模型分析方法可以分析相似价格的运动模式。例如,对股票进行聚类,可能发现关联交易及内幕交易的可疑信息。关联规则分析方法可以监控多个用户的关联交易行为,为发现跨账号协同的金融诈骗行为提供依据。了解数据分析应用场景了解数据分析应用场景7.欺诈行为检测(欺诈行为检测(Fraud Detection)1熟悉熟悉Python数据分析的工具数据分析的工具目录目录认识数据分析认识数据分析2安装安装Python的的Anaconda发行版发行版3掌握掌握Jupyter Notebook常用功能常用功能4目前主流的数据分析语言主要有Python、R、MATLAB这3种。其中,Python具有丰富和强大的库,同时Python常被称为胶水语言,能够将使用其他语言制作的各种模块(尤其是C/C+)轻松地连接在一起,是一门更易学、更严谨的程序设计语言。R语言通常用于统计分析、绘图。R是属于GNU系统的一个自由、免费、源代码开放的软件。MATLAB的作用是进行矩阵运算、绘制函数与数据、实现算法、创建用户界面和连接其他编程语言的程序等,其主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。了解数据分析常用工具了解数据分析常用工具Python、R、MATLAB这3种语言均可以进行数据分析。表11从语言学习难易程度、使用场景、第三方支持、流行领域和软件成本5方面比较了Python、R、MATLAB这3种数据分析工具。了解数据分析常用工具了解数据分析常用工具PythonPythonRMATLAB语言学习难易程语言学习难易程度度接口统一,学习曲线平缓接口众多,学习曲线陡峭自由度大,学习曲线较为平缓使用场景使用场景数据分析、机器学习、矩阵运算、科学数据可视化、数字图像处理等统计分析、机器学习、科学数据可视化等矩阵运算、数值分析、科学数据可视化、机器学习、符号计算、数字图像处理、数字信号处理等第三方支持第三方支持拥有大量的第三方库,能够简便地调用C、C+、Fortran、Java等其他程序语言拥有大量的包,能够调用C、C+、Fortran、Java等其他程序语言拥有大量专业的工具箱,在新版本中加入了对C、C+、Java的支持流行领域流行领域工业界学术界工业界学术界工业界学术界软件成本软件成本开源免费开源免费商业收费语法简单精练。语法简单精练。对于初学者来说,比起其他编程语言,Python更容易上手。含有大量功能强大的库。含有大量功能强大的库。结合在编程方面的强大实力,可以只使用Python这一种语言去构建以数据为中心的应用程序。功能强大。功能强大。从特性观点来看,Python是一个混合体。丰富的工具集使Python介于传统的脚本语言和系统语言之间。Python不仅具备所有脚本语言简单和易用的特点,而且提供了编译语言所具有的高级软件工程工具。研究、原型构建和构建生产系统。研究、原型构建和构建生产系统。研究人员和工程技术人员使用同一种编程工具,会给企业带来非常显著的组织效益,并降低企业的运营成本。Python是一门胶水语言。是一门胶水语言。Python程序能够以多种方式轻易地与其他语言的组件“粘接”在一起。例如,Python的C语言API可以帮助Python程序灵活地调用C程序,这意味着用户可以根据需要给Python程序添加功能或在其他环境系统中使用Python。了解了解Python数据分析的优势数据分析的优势使用Python进行数据分析时所用到的类库主要有NumPy、SciPy、pandas、Matplotlib、seaborn、pyecharts、scikit-learn等。NumPy是NumericalPython的简称,是一个Python科学计算的基础包。NumPy主要提供了以下内容。快速高效的多维数组对象快速高效的多维数组对象ndarray。对数组执行元素级计算和直接对数组执行数学运算的函数。对数组执行元素级计算和直接对数组执行数学运算的函数。读读/写硬盘上基于数组的数据集的工具。写硬盘上基于数组的数据集的工具。线性代数运算、傅里叶变换和随机数生成的功能。线性代数运算、傅里叶变换和随机数生成的功能。将将C、C+、Fortran代码集成到代码集成到Python的工具。的工具。了解了解Python数据分析常用类库数据分析常用类库1.NumPy除了为Python提供快速的数组处理能力外,NumPy在数据分析方面还有另外一个主要作用,即作为算法之间传递数据的容器。对于数值型数据,使用NumPy数组存储和处理数据要比使用内置的Python数据结构高效得多。此外,由低级语言(如C和Fortran)编写的库可以直接操作NumPy数组中数据,无须进行任何数据复制工作。了解了解Python数据分析常用类库数据分析常用类库SciPy是基于Python的开源代码,是一组专门解决科学计算中各种标准问题域的模块的集合,特别是与NumPy、Matplotlib和pandas这些核心包一起使用时。SciPy主要包含了8个模块,不同的模块有不同的应用,如用于插值、积分、优化、处理图像和特殊函数等。了解数据分析应用场景了解数据分析应用场景2.SciPy模块名称模块名称简介简介scipy.integrate数值积分和微分方程求解器scipy.linalg扩展了由numpy.linalg提供的线性代数求解和矩阵分解功能scipy.optimize函数优化器(最小化器)以及根查找算法scipy.signal信号处理工具scipy.sparse稀疏矩阵和稀疏线性系统求解器scipy.specialSPECFUN这是一个实现了许多常用数学函数(如伽马函数)的Fortran库的包装器scipy.stats检验连续和离散概率分布(如密度函数、采样器、连续分布函数等)的函数与方法、各种统计检验的函数与方法,以及各类描述性统计的函数与方法scipy.weave利用内联C+代码加速数组计算的工具pandas是Python的数据分析核心库,最初被作为金融数据分析工具而开发出来。pandas为时间序列分析提供了很好的支持,它提供了一系列能够快速、便捷地处理结构化数据的数据结构和函数。Python之所以成为强大而高效的数据分析环境与它息息相关。pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,以便完成重塑、切片与切块、聚合和选取数据子集等操作。pandas将是本书中使用的主要工具。了解数据分析应用场景了解数据分析应用场景3.pandasMatplotlib是较为流行的用于绘制数据图表的Python库,是Python的2D绘图库。Matplotlib最初由约翰亨特(JohnD.Hunter,JDH)创建,目前由一个庞大的开发团队维护。Matplotlib的操作比较容易,用户只需用几行代码即可生成直方图、功率谱图、条形图、错误图和散点图等图形。Matplotlib提供了pylab的模块,其中包括了NumPy和pyplot中许多常用的函数,方便用户快速进行计算和绘图。Matplotlib与IPython的结合,提供了一种非常好用的交互式数据绘图环境。绘制的图表也是交互式的,读者可以利用绘图窗口中工具栏中的相应工具放大图表中的某个区域,或对整个图表进行平移浏览。了解数据分析应用场景了解数据分析应用场景4.Matplotlibseaborn是基于Matplotlib的图形可视化Python库,它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。seaborn是在Matplotlib的基础上进行了更高级的API封装,使得作图更加容易。seaborn不需要了解大量的底层代码,即可使图形变得精致。在大多数情况下,使用seaborn能做出很具有吸引力的图,而使用Matplotlib能制作具有更多特色的图。因此,可将seaborn视为Matplotlib的补充,而不是替代物。同时,seaborn能高度兼容NumPy与pandas数据结构以及scipy与statsmodels等统计模式,可以在很大程度上帮助用户实现数据可视化。了解数据分析应用场景了解数据分析应用场景5.seabornEcharts是一个由百度开源的数据可视化工具,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而Python是一门富有表达力的语言,很适合用于数据处理。pyecharts是Python与Echarts的结合。pyecharts可以展示动态交互图,对于展示数据更方便,当鼠标悬停在图上时,即可显示数值、标签等。pyecharts支持主流Notebook环境,如JupyterNotebook、JupyterLab等;可轻松集成至Flask、Django等主流Web框架;高度灵活的配置项,可轻松搭配出精美的图表。pyecharts囊括了30多种常见图表,如Bar(柱形图/条形图)、Boxplot(箱形图)、Funnel(漏斗图)、Gauge(仪表盘)、Graph(关系图)、HeatMap(热力图)、Radar(雷达图)、Sankey(桑基图)、Scatter(散点图)、WordCloud(词云图)等。了解数据分析应用场景了解数据分析应用场景6.pyechartsscikit-learn是一个简单有效的数据挖掘和数据分析工具,可以供用户在各种环境下重复使用。scikit-learn建立在NumPy、SciPy和Matplotlib基础之上,对一些常用的算法方法进行了封装。目前,scikit-learn的基本模块主要有数据预处理、模型选择、分类、聚类、数据降维和回归6个。在数据量不大的情况下,scikit-learn可以解决大部分问题。对算法不精通的用户在执行建模任务时,并不需要自行编写所有的算法,只需要简单地调用scikit-learn库里的模块即可。了解数据分析应用场景了解数据分析应用场景7.scikit-learn1熟悉熟悉Python数据分析的工具数据分析的工具目录目录认识数据分析认识数据分析2安装安装Python的的Anaconda发行版发行版3掌握掌握Jupyter Notebook常用功能常用功能4Python拥有NumPy、SciPy、pandas、Matplotlib、seaborn、pyecharts和scikit-learn等功能齐全、接口统一的库,能为数据分析工作提供极大的便利。库的管理和版本问题,使得数据分析人员并不能够专注于数据分析,而是将大量的时间花费在与环境配置相关的问题上。基于上述原因,Anaconda发行版应运而生。Anaconda发行版Python预装了150个以上的常用Packages,囊括了数据分析常用的NumPy、SciPy、Matplotlib、seaborn、pyecharts、pandas、scikit-learn库,使得数据分析人员能够更加顺畅、专注地使用Python解决数据分析相关问题。推荐数据分析初学者(尤其是Windows系统用户)安装此Python发行版。只需要到Anaconda官方网站下载适合自身的安装包即可。安装安装Python的的Anaconda发行版发行版Python的Anaconda发行版主要有以下几个特点。包含了众多流行的科学、数学、工程和数据分析的Python库。完全开源和免费。额外的加速和优化是收费的,但对于学术用途,可以申请免费的License。全平台支持Linux、Windows、Mac;支持Python2.6、2.7、3.4、3.5、3.6和3.8等,可自由切换。了解了解Python的的Anaconda发行版发行版进入Anaconda官方网站,下载Windows系统中的Anaconda安装包,选择Python3.8版本。安装Anaconda的具体步骤如下。单击已下载好的Anaconda安装包,并单击“Next”按钮进入下一步。在在Windows系统中安装系统中安装Anaconda单击“IAgree”按钮,同意上述协议并进入下一步。在在Windows系统中安装系统中安装Anaconda选择图中“AllUsers(requiresadminprivileges)”单选按钮,单击“Next”进入下一步。在在Windows系统中安装系统中安装Anaconda单击“Browse”按钮,选择在指定的路径安装Anaconda,选择完成后单击“Next”按钮,进入下一步。在在Windows系统中安装系统中安装Anaconda两个复选框分别代表了允许将Anaconda添加到系统路径环境变量中、Anaconda使用的Python版本为3.8。全部勾选后,单击“Install”按钮,等待安装结束。在在Windows系统中安装系统中安装Anaconda单击“Finish”按钮,完成Anaconda安装。在在Windows系统中安装系统中安装Anaconda打开一个用户终端Terminal。使用cd命令将当前路径切换至系统下Anaconda安装包所在的文件路径。在在Linux系统中安装系统中安装Anaconda输入命令“bashAnaconda3-2020.11-Linux-x86_64.sh”,进行安装。在在Linux系统中安装系统中安装Anaconda按下键盘中的“Enter”键后,出现软件协议相关内容,在阅读时连续按“Enter”键读取全文,在协议末尾会让读者确认是否同意以上协议,输入“yes”,并按下键盘中的“Enter”键确认同意。在在Linux系统中安装系统中安装Anaconda同意协议后,默认安装路径在用户home目录下(/home/python/anaconda3),安装路径设置完成后,软件即可开始安装。在在Linux系统中安装系统中安装Anaconda在安装过程快结束时,将提示读者是否将Anaconda的安装路径加入到系统当前用户的环境变量中,输入“yes”,并按下键盘中的“Enter”键确认同意。在在Linux系统中安装系统中安装Anaconda软件安装完成后使用Linux系统的文本编辑器VIM或gedit查看当前用户的环境变量。输入命令“vi/home/python/.bashrc”来查看文档,出现界面,表示环境变量配置完成,说明Anaconda已经完成安装。如果未配置完成,那么需要在.bashrc文档末尾添加Anaconda安装目录的环境变量。在在Linux系统中安装系统中安装Anaconda1熟悉熟悉Python数据分析的工具数据分析的工具目录目录认识数据分析认识数据分析2安装安装Python的的Anaconda发行版发行版3掌握掌握Jupyter Notebook常用功能常用功能4jupyterNotebook(此前被称为IPythonNotebook)是一个交互式笔记本,支持运行40多种编程语言,其本质上是一个支持实时代码、数学方程、可视化和Markdown的Web应用程序。对于数据分析,JupyterNotebook最大的优点是可以重现整个分析过程,并将说明文字、代码、图表、公式和结论都整合在一个文档中。用户可以通过电子邮件、Dropbox、GitHub和JupyterNotebookViewer将分析结果分享给其他人。掌握掌握Jupyter Notebook常用功能常用功能在安装完成Python、配置好环境变量并安装了JupyterNotebook后,在Windows系统下的命令行或在Linux系统下的终端输入命令“jupyternotebook”,即可启动JupyterNotebook。掌握掌握Jupyter Notebook的基本功能的基本功能1.启动启动Jupyter Notebook打开JupyterNotebook以后会在系统默认的浏览器中出现图116的界面。单击右上方的“New”下拉按钮,出现下拉列表。掌握掌握Jupyter Notebook的基本功能的基本功能2.新建一个新建一个Notebook在下拉列表中选择需要创建的Notebook类型。其中,“TextFile”为纯文本型,“Folder”为文件夹,“Python3”表示Python运行脚本,灰色字体表示不可用项目。选择“Python3”选项,进入Python脚本编辑界面。掌握掌握Jupyter Notebook的基本功能的基本功能JupyterNotebook中的Notebook文档由一系列单元(Cell)构成,主要有以下两种形式的单元,在JupyterNotebook中的形式。掌握掌握Jupyter Notebook的基本功能的基本功能3.Jupyter Notebook的界面及其构成的界面及其构成代码单元代码单元。代码单元是读者编写代码的地方,通过按“Shift+Enter”组合键运行代码,其结果显示在本单元下方。代码单元左边有“In:”编号,方便使用者查看代码的执行次序。Markdown单元。单元。Markdown单元可对文本进行编辑,采用Markdown的语法规范,可以设置文本格式,插入链接、图片甚至数学公式。同样,按“Shift+Enter”组合键可运行Markdown单元,显示格式化的文本。掌握掌握Jupyter Notebook的基本功能的基本功能JupyterNotebook编辑界面类似于Linux的VIM编辑器界面,在Notebook中也有两种模式,其模式如下。编辑模式。编辑模式。用于编辑文本和代码。选中单元并按“Enter”键进入编辑模式,此时单元左侧显示绿色竖线。命令模式。命令模式。用于执行键盘输入的快捷命令。通过按“Esc”键进入命令模式,此时单元左侧显示蓝色竖线。掌握掌握Jupyter Notebook的基本功能的基本功能如果要使用快捷键,那么首先按“Esc”键进入命令模式,然后按相应的键实现对文档的操作。例如,切换到代码单元按“Y”键,切换到Markdown单元按“M”键,在本单元的下方增加一单元按“B”键,查看所有快捷命令按“H”键。掌握掌握Jupyter Notebook的基本功能的基本功能在JupyterNotebook中,可以使用Markdown进行文本标记,以便用户查看。同时JupyterNotebook还可以将Notebook导出形成HTML、PDF等多种格式。Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,便可以使普通文本内容具有一定的格式。JupyterNotebook的Markdown单元功能较多,下面将从标题、列表、字体、表格和数学公式编辑5个方面进行介绍。掌握掌握Jupyter Notebook的高级功能的高级功能1.Markdown标题是标明文章和作品等内容的简短语句。读者写报告或写论文时,标题是不可或缺的,尤其是论文的章节等,需要使用不同级别的标题。一般使用Markdown中的类Atx形式进行标题的排版,在首行前加一个“#”字符代表一级标题,加两个“#”字符代表二级标题,以此类推。掌握掌握Jupyter Notebook的高级功能的高级功能(1 1)标题标题列表是一种由数据项构成的有限序列,即按照一定的线性顺序排列而成的数据项的集合。列表一般分为两种:一种是无序列表,使用一些图标标记,没有序号,没有排列顺序;另一种是有序列表,使用数字标记,有排列顺序。Markdown对于无序列表,可使用星号、加号或减号作为列表标记;Markdown对于有序列表,则使用数字加“.”和“”(一个空格)表示掌握掌握Jupyter Notebook的高级功能的高级功能(2)列表)列表文档中为了凸显部分内容,一般对文字使用加粗或斜体格式,使得该部分内容变得更加醒目。对于Markdown排版工具而言,通常使用星号“*”和下划线“_”作为标记字词的符号。前后有两个星号或下划线表示加粗,前后有3个星号或下划线表示斜体。掌握掌握Jupyter Notebook的高级功能的高级功能(3)字体字体使用Markdown同样也可以绘制表格。代码的第一行表示表头,第二行分隔表头和主体部分,从第三行开始,每一行代表一个表格行。列与列之间用符号“”隔开,表格每一行的两边也要有符号“”掌握掌握Jupyter Notebook的高级功能的高级功能(4)表格)表格LaTeX是写科研论文的必备工具,不但能实现严格的文档排版,而且能编辑复杂的数学公式。在JupyterNotebook的Markdown单元中也可以使用LaTeX来插入数学公式。在文本行中插入数学公式,应使用两个“$”符号,如质能方程“$E=mc2$”。如果要插入一个数学区块,那么使用两个“$”符号,如使用“$z=fracxy$”表示式。掌握掌握Jupyter Notebook的高级功能的高级功能(5)数学公式编辑)数学公式编辑Notebook还有一个强大的特性,就是导出功能,可以将Notebook导出为多种格式,如HTML、Markdown、reST、PDF(通过LaTeX)等格式。其中,导出为PDF功能,可以让读者不用写LaTeX即可创建漂亮的PDF文档。读者还可以将Notebook作为网页发布在自己的网站上。甚至,可以导出为reST格式,作为软件库的文档。导出功能可以依次选择“File”“Downloadas”级联菜单中的命令实现。掌握掌握Jupyter Notebook的高级功能的高级功能2.导出功能导出功能本章主要介绍了数据分析的概念、流程、应用场景和常用工具,阐述了使用Python进行数据分析的优势,列举说明了Python数据分析重要类库的功能。紧接着阐述了Anaconda的特点,实现了在Windows和Linux两个系统中安装Anaconda数据分析环境。最后介绍了Python数据分析工具JupyterNotebook的常用功能。小结小结NumPy数值计算基础数值计算基础1掌握掌握NumPy矩阵与通用函数矩阵与通用函数目录目录掌握掌握NumPy数组数组对象对象ndarray2利用利用NumPy进行统计分析进行统计分析3NumPy提供了两种基本的对象。ndarray(N-dimensional Array Object):存储单一数据类型的多维数组。ufunc(Universal Function Object):能够对数组进行处理的函数。创建数组对象创建数组对象在创建数组之前,需要先了解数组的基本属性,数组的属性及其说明如下表。创建数组对象创建数组对象1.数组属性数组属性属性名称属性名称属性说明属性说明ndim返回int,表示数组的维数shape返回tuple,表示数组形状的阵列,对于n行m列的矩阵,形状为(n,m)size返回int,表示数组的元素总数,等于数组形状的乘积dtype返回data-type,表示数组中元素的数据类型itemsize返回int,表示数组的每个元素的大小(以字节为单位),例如,一个元素类型为float64的数组的itemsiz属性值为8(float64占用64个bits,每个字节长度为8,所以64/8,占用8个字节),一个元素类型为complex32的数组的itemsiz属性值为4,即32/8NumPy提供的array函数可以创建一维或多维数组,其基本使用格式如下。array函数主要参数及其说明如下表。创建数组对象创建数组对象2.数组创建数组创建参数名称参数名称参数说明参数说明object接收array_like,表示所需创建的数组对象,无默认值dtype接收data-type,表示数组所需的数据类型,如果未给定,那么选择保存对象所需的最小类型,默认为Nonendmin接收int,表示指定生成数组应该具有的最小维数,默认为0numpy.array(object,dtype=None,*,copy=True,order=K,subok=False,ndmin=0,like=None)除了使用array函数创建数组之外,还可以使用arange函数创建数组。arange函数类似于Python自带的函数range,通过指定开始值、终值和步长来创建一维数组,创建的数组不含终值。arange函数的基本使用格式如下。arange函数常用参数及其说明如下表。创建数组对象创建数组对象参数名称参数名称参数说明参数说明start接收int或实数,表示数组的开始值,生成的区间包括该值,默认为0stop接收int或实数,表示数组的终值,生成的区间不包括该值,无默认值step接收int或实数,表示在数组中,值之间的间距,默认为1dtype接收数据类型,表示输出数组的类型,默认为Nonenumpy.arange(start,stop,step,dtype=None,*,like=None)linspace函数通过指定开始值、终值和元素个数来创建一维数组,默认设置包括终值,这一点需要和arange函数区分。linspace函数的基本使用格式如下。linspace函数的常用参数及其说明如下表。创建数组对象创建数组对象参数名称参数名称参数说明参数说明start接收array_like,表示起始值,无默认值stop接收array_like,表示结束值,无默认值num接收int,表示生成的样本数,默认为50dtype接收数据类型,表示输出数组的类型,默认为Nonenumpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None,axis=0)logspace函数和linspace函数类似,它创建的是等比数列。logspace函数的基本使用格式如下。在logspace函数的参数中,除了base参数和linspace函数的retstep参数不同之外,其余均相同。创建数组对象创建数组对象numpy.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None,axis=0)NumPy还提供了其他函数用于创建特殊数组,如zeros、eye、diag和ones函数等。zeros函数函数:用于创建值全部为0的数组,即创建的数组值全部填充为0。eye函数函数:用于生成主对角线上的元素为1,其他的元素为0的数组,类似单位矩阵。diag函数函数:创建类似对角的数组,即除对角线外的其他元素都为0,对角线上的元素可以是0或其他值。ones函数函数:用于创建元素全部为1的数组,即创建的数组元素全部填充为1。创建数组对象创建数组对象在实际的业务数据处理中,为了更准确地计算结果,需要使用不同精度的数据类型。NumPy极大程度地扩充了原生Python的数据类型。在NumPy中,所有数组的数据类型是同质的,即数组中的所有元素类型必须是一致的。将元素类型保持一致可以更容易确定该数组所需要的存储空间。创建数组对象创建数组对象3.数组数据类型数组数