课程目的:帮助大家掌握表示、清洗、统计、展示数据的能力
讲解主要内容:
NumPy:ndarray以及存取数据的基本方法和相关数据操作函数
Matplotlib:pyplot介绍绘制图形的方法
Pandas:数据分析中最有效的第三方库,series 、DataFrame两种类型及其操作方式
Projects:四个案例
主题思想:介绍如何理解一组数据表达的含义
摘要:有损的提取数据特征的过程
通过摘要可以得到数据:
- 基本统计(含排序)
- 分布/累计统计
- 数据特征
相关性、周期性等
4.数据挖掘(形成知识)
编程工具:
anoconda IDE
掌握:conda、spyder、Ipython
Python IDE工具
IDLE:适用python入门,代码300+以内
SublimeText:专为程序员开发的第三方专用编程工具,专业编程体验,多种编程风格,工具非注册免费使用
Wing:公司维护,工具收费,调试功能丰富,版本控制,版本同步,适合多人协作编程
Visual Studio&PTVs
PTVs
微软公司维护,调试功能丰富
Eclipse&PyDev
配置复杂一点
PyCharm
社区版本免费
简单,集成度高
适用较大的工程编写
科学计算,数据分析
Canopy
公司维护,工具收费
支持近500个第三方库
Anaconda
开源免费
支持近800个第三方库
Anaconda IDE使用
下载网址:
支持版本:
集成各类python工具的平台
conda:包管理和环境管理工具
包管理类似于pip,管理Python第三方库(安装,卸载,更新)
环境管理允许用户可以使用不同版本Python,并且可以自由切换
anaconda:一个集合,包括conda、某版本Python、一批第三方库。
conda将工具、第三方库、Python版本、conda都当做包,管理十分方便
cmd conda –version可以查看conda版本
conda update conda 可以升级conda版本
Spyder:编写和调试python语言的编辑器
Ipython:交互式编程环境
是一个功能强大的交互式shell
适合交互式数据可视化和GUI相关应用
技巧:“?”获得python变量的通用信息
“%run python文件”运行py文件
“%magic”显示所有魔术命令
“%hist”IPython命令的输入历史
%pdb 异常发生后自动进入调试器
%reset 删除当前命名空间的全部变量或名称
%who 显示Ipython当前命名空间已经定义的变量
%time statement 给出代码的执行时间,statement是一段代码
%timeit statement 多次运行代码,返回平均执行时间
第一课
数据的维度
一维数据
列表和数组
一组数据的有序结构
列表,数据可以是不同类型
数组,数据必须是相同类型
二维数据是一维数据的组合形式
多维数据是由一维或者二维数据在新维度上扩展形成。
高维数据仅利用最基本的二元关系展示数据间的复杂结构。
一维数据:列表(有序),集合(无序)
二维数据:列表类型(每个元素又是列表)
多维数据:列表类型
高维数据:字典类型或数据表示格式
JSON、XML、YAML国际公认的三种数据表示格式
NumPy
NumPy是一个开源的Python科学计算基础库
*一个强大的N为数组对象ndarray
*广播功能函数
*整合C/C++/Fortran代码的工具
*线性代数、傅里叶变换、随机数生成等功能
scipy,pandas等数据处理和计算科学库的基础
N维数组对象:ndarray
- 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
- 设置专门的数组对象,经过优化,可以提高这类应用的运算速度
- 数组对象采用相同的数据类型,有助于节省运算和存储空间
ndarray
*实际的数据
*描述这些数据的元数据(维度,数据类型等)
*一般要求所有元素类型相同,数组下标从0开始
轴(axis):保存数据的维度
秩(rank):轴的数量
.ndim 秩,轴的数量或者维度
.shape 形状
.size 元素数量
.dtype 对象的元素类型
.itemsize每个元素的大小,以字节为单位ndarray数组的创建方法
(1)从python中的列表、元组等类型创建ndarray数组
x=np.array(list/tuple)
x=np.array(list/tuple,dtype=np.float32)
如果不指定,ndarray会根据数据情况确定dtype类型
(2)使用NumPy中函数创建ndarray数组
np.arrange(n)类似range()函数,返回ndarray类型,元素从0到n-1,生成的元素是整数类型
np.ones(shape):shape是元组类型
np.zeros(shape),除非用户指定数据类型,否则ones和zeros生成的数据元素都是浮点型
np.eye(dim),创建秩为dim的单位矩阵
np.ones_like(a)根据数组a的形状生成一个全1数组
np.zeros_like(a)
np.full_like(a,val),根据数组a的形状生成一个值全val的数组
np.linespace:根据起止数据等间距地填充数据,形成数组
np.concatenate((a,b)):可以连接两个数组a,b
ndarray数组的维度变换
.reshape(shape)
.resize(shape)
返回一个shape形状的数组,reshape不改变原数组,resize改变原数组
.swapaxes(ax1,ax2)将数组n个维度的ax1维度和ax2维度进行交换
.flatten()对数组进行降维,返回折叠后的一维数组,不改变原数组
ndarray数组的类型变换
new_a=a.astype(new_type)会创建新数组
Is=a.tolist()将ndarray a转换成list数组的索引和切片
数组的索引和切片:与Python的列表相似 a[1:4:2] 起始编号:终止编号:步长 多维数组索引:a[1,2,3] 多维数组切片:a[:,:,:2]
ndarray数组的运算
数组与数量的运算
数组与标量之间的运算作用于数组的每一个元素
np.abs(x),np.fabs(x)等
np.ceil(x)
np.floor(x)
计算ceiling值或floor值
ceiling表示不超过元素的整数值
floor表示小于元素的最大整数值
np.rint(x)计算各元素的四舍五入值
numpy入门总结
数据的维度
一维数据,二维数据,多维数据,高维数据