🖼 人工智能学习总目录

🖼《利用Python进行数据分析》小结可以看这里

本章知识小结:

  • 1、结构化数据 (表格型数据、多维数组矩阵、键位列关联的SQL表、均匀或非均匀的时间序列)
  • 2、全局解释器锁GIL(防止解释器同时执行多个Python指令)
  • 3、numpy、pandas、matplotlib、scipy、scikit-learn、statsmodels
  • 4、处理\处置\ 规整 (munge\munging\wrangling)
  • 5、伪代码:用一种类是代码的形式描述算法或过程
  • 6、语法糖:并不增加新特性,但便利于代码编写的编程语法

《利用Python进行数据分析》随书资料

关注点 结构化数据 (表格型数据、多维数组矩阵、键位列关联的SQL表、均匀或非均匀的时间序列)等等

为什么要用Python做数据分析? 能整合别的语言比如C++,简单已用有成熟框架

什么时候不用Python? 高并发、多线程应用,尤其是多CPU绑定线程时——Python中的全局解释器锁GIL(防止解释器同时执行多个Python指令)

1、重要的Python库

1.1 Numpy

Numerical Python 是 数值计算的基石。

提供多种数据结构、算法及大部分设计Python数值计算所需的接口,还包括:

  • 快速、高效的多维数组对象ndarry
  • 基于元素的数组计算或树组件数学操作的函数
  • 用于读写硬盘中基于数组的数据集的工具
  • 线性代数操作、傅里叶变换以及随机数生成
  • 成熟的C语言API,允许Python拓展和本地的C或C++代码访问Numpy的数据结构和计算设施

1.2 pandas

pandas提供了高级数据结构和函数,这些数据结构和函数的设计使用利用结构化、表格化数据的工作快速、简单、有表现力。

pands对象DataFrame,它是用于实现表格化、面向列、使用行列标签的数据结构;pands对象Series,一种一维标签数组对象。

pands将表格和关系型数据库的灵活数据操作能力与Numpy的高性能数据计算理念相结合,提供复杂的索引函数,使得数据的重组、切块、切片、聚合、子集选择更简单

1.3 matplotlib

制图、二维数据可视化(最安全的选择)

1.4 IpythonJupyter

Ipython是一个可交互的Python解释器

Jupyter是一个适合多种语言的交互式工具(支持40余种语言)

1.5 SciPy

科学计算领域针对不同标准问题域的包集合,和Numpy一起通公路一个合理、完整、成熟的计算基础。例如:

  • scipy.integrate 数值积分例程和微分方程求解器
  • scipy.linalg 线性代数例程和基于numpy.linalg的矩阵分解
  • scipy.optimize 函数优化器(最小化器)和求根算法
  • scipy.sparse 系数矩阵和稀疏线性系统求解器
  • scipy.special SPECFUN包装器,在Fortran语言下实现通用数据函数的包,例如gamma
  • scipy.stats 标准的连续喝离散概率分布(密度函数、采样器、连续分布函数)、各类统计测试、各类描述性测试

1.6 scikit-learn

重点在预测,机器学习包,有以下模块:

  • 分类:SVM、最近邻、随机森林、逻辑回归等
  • 回归:Lasso、岭回归等
  • 聚类:k-means、谱聚类等
  • 降维:PAC、特征选择、矩阵分解等
  • 模型选择:网格搜索、交叉验证、指标矩阵
  • 预处理:特征提取、正态化

scikit-learn与pandas、statsmodels、IPython一起使Python成了高效的数据科学编程语言

1.7 statsmodels

重点在统计推理,提供不确定性评价和p值参数

统计分析包,利用R语言实现各类分析模型。

Nathaniel Smith开发了Patsy项目,为R语言公式系统所驱动的statsmodels包提供公式、模型规范框架。

与scikit-learn相比,statsmodels包含经典的通计算、经济学算法,模型如下:

  • 回归模型:线性回归、通用线性模型、鲁棒线性模型、线性混合效应模型等
  • 方差分析(ANOVA)
  • 时间序列分析:AR、ARMA、ARIMA、VAR等模型
  • 非参数方法:核密度估计、核回归
  • 统计模型结果可视化

2、集成开发环境

pycharm

3、导入约定

1
2
3
4
5
6
import numpy as np
import marplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import statsmodels as sm
#类似 from numpy import * 称为拙劣的实践

4、术语

处理 munge

处置 munging

规整 wrangling

伪代码:用一种类是代码的形式描述算法或过程

语法糖:并不增加新特性,但便利于代码编写的编程语法