应对期末考试,对本学期《Python 数据分析与应用》课程学习的内容进行复习。


# 第一章、Python 数据分析的概述

# 1. 认识数据分析

# 1)数据分析的概念

数据分析是指用适当的分析方法对收集来的大量数据进行分析,提取有用信息和形成结论,对数据加以详细研究和概括总结的过程

广义的数据分析包括狭义数据分析数据挖掘

狭义数据分析是指根据分析目的采用对比分析、分组分析、交叉分析和回归分析等分析方法,对收集的数据进行处理与分析,提取有价值的信息,发挥数据的作用,得到一个特征统计量结果的过程。

image-20240617003328493

# 2)数据分析流程

数据分析的基本流程:

image-20240617003421046

数据分析的核心步骤:

需求分析→数据获取→数据预处理→分析与建模→模型评价与优化→部署

image-20240617003435872

# 3)数据分析应用场景

客户分析→营销分析→社交媒体分析→网络安全→设备管理→交通物流分析→欺诈行为检测

# 4)分析方法

1)、一般可分为:

描述性数据分析:最基础的,本月销售多少,哪个商品销量好。

探索性数据分析:侧重发现数据规律和特征。

验证性数据分析:先确定对数据使用哪种数据模型,再对假设模型进行验证。

2)、从技术层面划分:

统计分析类:基础统计,包括对比分析(每月销售量)、同比分析、差异分析等。

高级分析类:以建模为主,包括回归分析、聚类分析、矩阵分析等。

数据挖掘类:机器学习,数据仓库,如推荐功能等。

# 5)数据的获取

(1) 公开的数据集

(2) 爬虫数据

(3) 数据交易平台。

# 2. 熟悉 Python 数据分析的工具

# 1)数据分析语言

主流的数据分析语言主要有 Python、R、MATLAB 这 3 种

  • Python 具有丰富和强大的库,同时 Python 常被称为胶水语言,能够将使用其他语言制作的各种模块(尤其是 C/C++)轻松地连接在一起,是一门更易学、更严谨的程序设计语言
  • R 语言通常用于统计分析、绘图。R 是属于 GNU 系统的一个自由、免费、源代码开放的软件。
  • MATLAB 的作用是进行矩阵运算、绘制函数与数据、实现算法、创建用户界面和连接其他编程语言的程序等,其主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。

# 2)Python 数据分析的优势

  1. 语法简单精练。
  2. 含有大量功能强大的库。
  3. 功能强大。
  4. 研究、原型构建和构建生产系统。
  5. Python 是一门胶水语言。

# 3)Python 常用库

使用 Python 进行数据分析时所用到的类库主要有 NumPy、SciPy、pandas、Matplotlib、seaborn、pyecharts、scikit-learn 等。

①NumPy

  • NumPy 是 Numerical Python 的简称,是一个 Python 科学计算的基础包。

  • NumPy 主要提供了以下内容。

    • 快速高效的多维数组对象 ndarray。

    • 对数组执行元素级计算和直接对数组执行数学运算的函数。

    • 读 / 写硬盘上基于数组的数据集的工具。

    • 线性代数运算、傅里叶变换和随机数生成的功能。

    • 将 C、C++、Fortran 代码集成到 Python 的工具。

  • 特点:

    • 为 Python 提供快速的数组处理能力外,NumPy 在数据分析方面还有另外一个主要作用,即作为算法之间传递数据的容器

    • 对于数值型数据,使用 NumPy 数组存储和处理数据要比使用内置的 Python 数据结构高效得多

    • 此外,由低级语言(如 C 和 Fortran)编写的库可以直接操作 NumPy 数组中数据,无须进行任何数据复制工作。

②SciPy

  • SciPy 是基于 Python 的开源代码,是一组专门解决科学计算中各种标准问题域的模块的集合,特别是与 NumPy、Matplotlib 和 pandas 这些核心包一起使用时。

  • 模块名称简介
    scipy.integrate数值积分和微分方程求解器
    scipy.linalg扩展了由 numpy.linalg 提供的线性代数求解和矩阵分解功能
    scipy.optimize函数优化器(最小化器)以及根查找算法
    scipy.signal信号处理工具
    scipy.sparse稀疏矩阵和稀疏线性系统求解器
    scipy.specialSPECFUN[这是一个实现了许多常用数学函数(如伽马函数)的 Fortran 库]的包装器
    scipy.stats检验连续和离散概率分布(如密度函数、采样器、连续分布函数等)的函数与方法、各种统计检验的函数与方法,以及各类描述性统计的函数与方法
    scipy.weave利用内联 C++ 代码加速数组计算的工具

③pandas

  • pandas 是 Python 的数据分析核心库,最初被作为金融数据分析工具而开发出来。

  • pandas 为时间序列分析提供了很好的支持,它提供了一系列能够快速、便捷地处理结构化数据的数据结构和函数。

  • Python 之所以成为强大而高效的数据分析环境与它息息相关。

  • pandas 兼具 NumPy 高性能的数组计算功能以及电子表格和关系型数据库(如 SQL)灵活的数据处理功能。

  • 它提供了复杂精细的索引功能,以便完成重塑、切片与切块、聚合和选取数据子集等操作。pandas 将是本书中使用的主要工具。

④Matplotlib

  • Matplotlib 是较为流行的用于绘制数据图表的 Python 库,是 Python 的 2D 绘图库。

  • Matplotlib 的操作比较容易,用户只需用几行代码即可生成直方图、功率谱图、条形图、错误图和散点图等图形。

  • Matplotlib 提供了 pylab 的模块,其中包括了 NumPy 和 pyplot 中许多常用的函数,方便用户快速进行计算和绘图。Matplotlib 与 IPython 的结合,提供了一种非常好用的交互式数据绘图环境。

  • 绘制的图表也是交互式的,读者可以利用绘图窗口中工具栏中的相应工具放大图表中的某个区域,或对整个图表进行平移浏览。

⑤ seaborn

  • seaborn 是基于 Matplotlib 的图形可视化 Python 库,它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

  • seaborn 是在 Matplotlib 的基础上进行了更高级的 API 封装,使得作图更加容易。

  • seaborn 不需要了解大量的底层代码,即可使图形变得精致。

  • 在大多数情况下,使用 seaborn 能做出很具有吸引力的图,而使用 Matplotlib 能制作具有更多特色的图。

  • 因此,可将 seaborn 视为 Matplotlib 的补充,而不是替代物。同时,seaborn 能高度兼容 NumPy 与 pandas 数据结构以及 scipy 与 statsmodels 等统计模式,可以在很大程度上帮助用户实现数据可视化。

⑥pyecharts

  • Echarts 是一个由百度开源的数据可视化工具,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。

  • 而 Python 是一门富有表达力的语言,很适合用于数据处理。pyecharts 是 Python 与 Echarts 的结合。

  • pyecharts 可以展示动态交互图,对于展示数据更方便,当鼠标悬停在图上时,即可显示数值、标签等。pyecharts 支持主流 Notebook 环境,如 Jupyter Notebook、JupyterLab 等;可轻松集成至 Flask、Django 等主流 Web 框架;高度灵活的配置项,可轻松搭配出精美的图表。

  • pyecharts 囊括了 30 多种常见图表,如 Bar(柱形图 / 条形图)、Boxplot(箱形图)、Funnel(漏斗图)、Gauge(仪表盘)、Graph(关系图)、HeatMap(热力图)、Radar(雷达图)、Sankey(桑基图)、Scatter(散点图)、WordCloud(词云图)等。

⑦scikit-learn

  • scikit-learn 是一个简单有效的数据挖掘和数据分析工具,可以供用户在各种环境下重复使用。

  • scikit-learn 建立在 NumPy、SciPy 和 Matplotlib 基础之上,对一些常用的算法方法进行了封装。

  • 目前,scikit-learn 的基本模块主要有数据预处理、模型选择、分类、聚类、数据降维和回归 6 个。

  • 在数据量不大的情况下,scikit-learn 可以解决大部分问题。对算法不精通的用户在执行建模任务时,并不需要自行编写所有的算法,只需要简单地调用 scikit-learn 库里的模块即可。

# 3. 装 Python 的 Anaconda (了解)

Anaconda 发行版 Python 预装了 150 个以上的常用 Packages,囊括了数据分析常用的 NumPy、SciPy、Matplotlib、seaborn、pyecharts、pandas、scikit-learn 库,使得数据分析人员能够更加顺畅、专注地使用 Python 解决数据分析相关问题。

# 4.Jupyter Notebook(了解)

jupyter Notebook(此前被称为 IPython Notebook)是一个交互式笔记本,支持运行 40 多种编程语言,其本质上是一个支持实时代码、数学方程、可视化和 Markdown 的 Web 应用程序。

对于数据分析,Jupyter Notebook 最大的优点是可以重现整个分析过程,并将说明文字、代码、图表、公式和结论都整合在一个文档中。

用户可以通过电子邮件、Dropbox、GitHub 和 Jupyter Notebook Viewer 将分析结果分享给其他人。