本章内容
1 . 理解数据
2 . 认识数据分析
3 . 数据分析工具Python
4 . 重要的Python数据分析类库
5 . 集成开发环境和文本编辑器
6 . 使用Jupyter Notebook
需要分析的数据一般是结构化的、半结构化的、非结构化的数据集合 。 大部分数据集多能被转化为更加适合分析和建模的结构化形式 。
主要的结构化数据有 :
1 . 表格型数据 , 其中各列可能是不同的类型(字符串,数值,日期等),比如保存在关系型数据库中或以制表符/逗号为分隔符的文本文件中的那些数据 。
2 . 多维数据(矩阵),一维 、二维、三维等多种形式
3 . 通过关键列相互联系的多个表,如sql中的主外键
4 . 间隔平均或不平均的时间序列
数据分析的概念
数据分析是使用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程 。
【这一过程也是质量管理体系的支持过程 。 在实用中 ,数据分析可帮助人们做出判断,以便采取适当行动 。】
数据分析方法
1 . 描述型分析 : 描述发生了什么
2 . 诊断型分析 : 得出发生的原因
3 . 预测型分析 : 预测时间未来发生的可能性
4 . 指令型分析 : 应该采取什么措施
数据分析的一般流程
需求分析
→
rightarrow
→数据获取
→
rightarrow
→数据预处理
→
rightarrow
→数据分析与建模
→
rightarrow
→模型评价和优化
→
rightarrow
→部署
**需求分析 ** : 数据分析中的需求分析也是数据分析环节的第一步和最重要的步骤之一 , 决定了后续的分析的方向和方法。
数据获取 : 数据时数据分析工具的基础 , 是指根据需求分析的结果提取收集数据。
数据预处理 : 数据预处理是指对数据进行数据合并,数据清洗,数据变换和数据标准化,数据变换后使得整体数据变为干净整齐,可以直接用于分析建模这一过程的总称。
数据分析与建模 : 分析与建模是指通过对比分析,分组分析,交叉分析,回归分析等分析方法和聚类、分类、关联规则、智能推荐等模型与算法发现数据中的有价值的信息,并得出结论的过程。
模型评价与优化 : 模型评价是指对已经建立的一个或多个模型,根据其模型的类别,使用不同的指标评价其性能优劣的过程 。【不同的模型可能导致最终得到的结论是不一样的】
部署:部署是指将通过了正式应用数据分析结果与结论应用至实际生产系统的过程。
【目前主流的数据分析语言有R,Python程序语言】
功能对比 :
Python 与 R相比速度快
统计理论研究、前沿科学研究,R比python更胜一筹
Python的工程化应用强于R
Python的应用场景大于R
Python处理大数据的速度快于R
应用场景对比:
使用python 进行数据预处理、数据清洗,特别针对于非结构化数据(如网页,图象,文本等),极强的灵活性,能够从自由文本、网站和社交媒体网络提取信息,便于图像挖掘和为分析准备数据 。
使用 R 进行分析、数据可视化与建模:
1 . 为分析提供了极好的灵活性
2 . R使你在分析的时候更容易思考
3 . 由于有着十分活跃的统计与数学社区 , 可以持续的更新和增强分析功能优秀的数据可视化工具 。
Python的优势
1 . 优雅、简单、明确 。 它是一种代表简单思想的语言,有简单的语法,容易上手
2 . 强大的标准库 。 完善的基础代码库,覆盖了网络通信、文件处理、数据库结构、图形系统、XML处理等大量内容,被形象地称为“内置电池”
3 . 良好的可扩展性 。 大量的第三方模块,覆盖了众多领域,开发的代码通过很好的封装,也可以作为第三方模块给别人使用 。
4 . “胶水语言” 。 免费开源,可移植,还可以嵌入到C,C++等程序。
Numpy–(Numerical Python的简称)是Python科学计算的基础包
1 . 提供了快速高效的多维数组对象 ndarray
2 . 提供了对数组执行元素级计算以及直接对数组执行数学运算的函数
3 . 提供了读写硬盘上基于数组的数据集的工具
4 . 提供了线性代数运算,傅里叶变换,随机数生成功能
5 . 提供了成熟的C,C++,Fortran代码访问NumPy的数据结构和计算工具
6 . NumPy 为Python提供快速的数组处理能力。
7 . NumPy在数据分析方面作为在算法和库之间传递数据的容器
8 . 对于数值型数据,NumPy数组在存储和处理数据时要比内置的python数据结构高效得多。
9 . 由低级语言(比如C和Fortran)编写的库,可以直接 *** 作NumPy数组中的数据,无需进行任何数据复制工作
pandas 是python的一个数据分析包,最初被作为金融数据分析工具而开发出来
- pandas为时间序列分析提供了很好的支持pandas是基于NumPy的一种工具,是为了解决数据分析任务而创建的pandas纳入了大量库和一些标准的数据模型 , 提供了高效地 *** 作大型数据集所需的工具pandas提供了大量能使我们快速便捷地处理数据的函数和方法pandas是使python成为强大而高效的数据分析环境的重要因素之一
Matplotlib是python的一个2D绘图库
1 . 它以各种硬拷贝格式和跨平台的交互式环境,生成用于出版质量级别的图形
2 . Matplotlib *** 作简单,开发者仅需几行代码,便可以生成折线图、直方图、功率谱图、条形图、错误图、散点图等
3 . 提供了pylab的模块,其中包括了NumPy 和pyplot 中许多常用的函数,方便用户快速进行计算和绘图
SciPy是一组专门解决科学计算中各种标准问题域的包的集合
1 . scipy.integrate 数值积分例程和微分方程求解器
2 . scipy.linalg 扩展了由numpy.linalg 提供的线性代数例程和矩阵分解功能
3 . scipy.optimize 函数优化器(最小化器)以及根查找算法
4 . scipy.signal 信号处理工具
5 . scipy.sparse 稀疏矩阵和系数线性系统求解器
6 . scipy.special SPECFUN(这是一个实现了许多常用数学函数(如伽马函数)的Fortran库)的包装器
7 . scipy.stats 标准连续和离散概率分布(如密度函数,采样器,连续分布函数等),各种统计检验方法,以及更好的描述统计法
scikit-learn 是最为流行的Python 的通用机器学习工具包
1 . 简单有效,可以提供用户在各种环境下重复使用
2 . 封装了一些常用的算法方法
3 . 基本模块主要有数据预处理,模型选择,分类,聚类,数据降维和回归6个,在数据量不大的情况下,scikit-learn可以解决大部分问题
stats models 是一个统计分析包,包含经典统计学和经济计量学的算法
1 . 回归模型 : 线性回归,广义线性模型,健壮线性模型,线性混合效应模型等等
2 . 方差分析 : ANOVA
3 . 时间序列分析 : AR,ARMA,ARIMA,VAR和其他模型
4 . 非参数方法:核密度估计、核回归
5 . 统计模型结果可视化
集成开发环境 :
1 . IPython + Jupyter Notebook
2 . PyDev(免费),基于Eclipse平台的IDE
3 . JetBrains 的PyCharm(商业用户需要订阅,开源开发者免费)
4 . Visual Studio(Windows用户)的Python Tools
5 . Spyder(免费),Anaconda附带的IDE
6 . Komodo IDE(商业)
7 . Others…
文本编辑器: Sublim Text3 , Atom
使用Jupyter Notebook1 . Jupyter Notebook 是一个交互式笔记本,支持运行40多种编程语言
2 . Jupyter Notebook本质是一个支持实时代码,数学方程,可视化和markdown的web应用程序
3 . Jupyter Notebook需要与内核互动,内核是Jupyter与其他编程语言的交互编程协议
4 . Python的Jupyter内核是使用IPython
Tab补全
输入表达式时,按下Tab , 会搜索已输入变量(对象、函数等)的命名空间
可以补全任何对象的方法和属性
可以补全模块
可以补全文件路径
常用快捷键:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)