数据分析基本概念
明确思路→数据收集《分布式爬虫实战》→数据处理→数据分析→数据展现
常用的收集途径:
公开信息,外部数据库,自有数据库,调查问卷,客户数据
数据清洗:
可读性,完整性,唯一性,权威性及合法性
常见的数据类型
1,类别型数据
(1)取值种类
(2)每类取值的分布
2,数值型变量
(1)极值和分位点
(2)均值和标准差
(3)变量间相关性
3,通用数据描述
(1)缺失值
(2)重复性
python3新特性
字符串格式化输出
新增format()方式
dict类型变化
删除之前的iterkeys(),itervalues(),iteritems()改为keys(),values(),items().
NumPy(Numerical Python)
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
1,高性能科学计算和数据分析的基础包,提供多维数组对象
2,ndarray,多维数组(矩阵),具有矢量计算能力,快速节省空间
3,矩阵运算,无需循环,可完成类似matlab中的矢量计算
4,线性代数,随机数生成
5,广播功能函数
6,整合 C/C++/Fortran 代码的工具
import numpy as np
SciPy
1,在NnmPy库的基础上增加了众多的数学,科学及工程常用的库函数
2,线性代数,常微分方程求解,信号处理,图像处理,稀疏矩阵
3,import scipy as sp
ndarry,N维数组对象
所有元素必须是相同类型
ndim
属性,维度个数
shape属性,各维度大小
dtype属性,数据类型
创建ndarry
np.array(collection),collection为序列型对象(list).嵌套序列(list of list)
np,zeros,np.ones,np.empty指定大小的全0或者全1数组
注意:第一个参数是元祖,用来指定大小,如(3,4)
empty不是总是返回全0,有时返回的是未初始的随机值
索引与切片
一维数组的索引与python的列表索引功能相似
多维数组的索引
arr[r1:r2,c1:c2]
arr[1,1]等价arr[1][1]
[:]代表某个维度的数据
条件索引
不耳坠多维数组 arr[condition] condition 可以是多个条件组合
注意,多个条件组合要使用 & | ,而不是and or
维数转换
转置
np.where
矢量版本的三元表达式: x if condition else y
np.where(condition,x,y)
常用的统计方法
np.mean, np.sum,
np.max, np.min
np,std, np.var
np.argmax, np.argmin
|
|
名称
|
描述
|
object
|
数组或嵌套的数列
|
dtype
|
数组元素的数据类型,可选
|
copy
|
对象是否需要复制,可选
|
order
|
创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
|
subok
|
默认返回一个与基类类型一致的数组
|
ndmin
|
指定生成数组的最小维度
|
ndarray 对象由计算机内存的连续一维部分组成,并结合索引模式,将每个元素映射到内存块中的一个位置。内存块以行顺序(C样式)或列顺序(FORTRAN或MatLab风格,即前述的F样式)来保存元素。
注意多维的话要指定统计的维度,否则默认是全部维度上做统计
NumPy 广播(Broadcast)
广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。
如果两个数组 a 和 b 形状相同,即满足
a.shape == b.shape,那么 a*b 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同。
广播的规则:
让所有输入数组都向其中形状最长的数组看齐,形状中不足的部分都通过在前面加 1 补齐。
输出数组的形状是输入数组形状的各个维度上的最大值。
如果输入数组的某个维度和输出数组的对应维度的长度相同或者其长度为 1 时,这个数组能够用来计算,否则出错。
当输入数组的某个维度的长度为 1 时,沿着此维度运算时都用此维度上的第一组值。
简单理解:对两个数组,分别比较他们的每一个维度(若其中一个数组没有当前维度则忽略),满足:
数组拥有相同形状。
当前维度的值相等。
当前维度的值有一个是 1。
若条件不满足,抛出
“ValueError: frames are not aligned” 异常。