利用Python数据分析-Numpy和Pands篇

书籍《利用Python进行数据分析》

Numpy--数组及矩阵,矢量计算

  1、ndarray多维数组, matrix矩阵

  2、针对整组数据进行快速运算的标准数学(统计)函数,(与list区别:无需循环编写程序)

  3、用于读写磁盘数据工具及操作内存映射文件工具

  4、线性代数、随机数生成及傅里叶变换

  5、基于C语言API,具有良好的运行速率

创建函数
array 输入数据转换成ndarray(dtype可选)
arrange  内置range返回ndarray
zeros/zeros_like 根据指定shape和dtype返回全0数组或参考其他数组的shape和dtype
eye 创建N*N单位矩阵
ones/ones_like 根据指定shape和dtype返回全1数组或参考其他数组的shape和dtype
empty/empty_like 只分配空间但不填充任何值
基本函数
dtype


数据类型dtype(可自定义类型) 注:复数Complex不得转换成整数

shape  
reshape  
ravel  
transpose/T 数组转置
stack/hstack/vstack/dstack/concatenate/  
ix_ 选取方形区域的索引器,花式索引x[ix_([0,1],[0,1])]=x[[0,1]][:,[0,1]]
统计函数
sqrt/square/log/sign/abs  
min/max/ptp/sum  
mean/var/std  
argmin/argmax 最小最大值索引
any/all 数组中是否存在一个或多个True/数组中是否全是True
average  
median  
sort  
in1d 测试一个数组中的值是否在另一个数组中的成员资格,返回bool数组
unique/intersect1d/union1d/setdiff1d/setxor1d  
文件输入输出函数
loadtxt/savetxt  
save/load 将数组以二进制格式保存磁盘或读取(npy)
savez 保存多个数组至压缩文件
线性代数函数(linalg)
dot 矩阵内积XTX
qr QR分解
inv 逆矩阵
svd 奇异分解SVD
eig 特征值和特征向量
det 矩阵行列式
随机数函数(random)
normal(shape) 以shape规格正态分布数组
randint/rand/randn  
seed  

注:不同shape数组之间的运算叫做广播


 

Pandas--基于Numpy构建,提供高级数据结构和操作工具

 Series是一种类似于一维数组的对象,由一组数据(Numpy数据类型)以及一组与之相关的数据标签组成。

Series
values/index 表现形式和索引,index不允许修改
isnull/notnull/fillna/dropna() 检测是否缺失/填充缺失值/过滤缺失值
name/index.name  
Series(data, index=) 创建Series对象
reindex([], fill_value=,method=) 创建新索引,ffill、pad/bfill、backfill(前/后填充/搬运)
drop 丢弃指定索引上的项
sort_index()/order()  
rank(method=,ascending=) method参数破坏平级关系:max/min/first/average
corr/cov,corrwith 相关系数、协方差
unique,value_counts

唯一值,计算各值出现的频率

isin

Series各值是否存在于输入的值序列中,返回布尔数组

iget_value

根据位置的索引查值

DataFrame是一个表格型的数据结构,含有一组有序的列,每列可以是不同的值类型。

DataFrame
DataFrame(data, columns=, index=) 创建DataFrame对象
ix() 用过索引字段获取行
reindex([],method=,columns=) 相比较Series,可修改行列索引
add(df,fill_value=,axis=)       sub,div,mul  
reindex(columns=,fill_value=)  
apply(f,axis=) f=lambda x: x.max()-min() 将函数应用到各行或各列形成的一维数组上
applymap 针对元素级的python函数
sort_index(axis=,ascending=,by=) by参数可根据多列排序
sum(axis=,level=),cumsum/cummin/cummax/cumprod 求和(,根据级别),cumsum为累计求和函数
mean(axis=,skipna=)/median/mad/var/std/quantile skipna参数表示是否忽略NA
idxman/idxmin/argmin/argmax 达到最大或最小的索引或索引位置(整数
describe 列计算汇总统计
dropna(how=‘all’,axis=,thresh) /fillna(inplace=,limit=,axis=,method=) 过滤缺失值(all仅丢弃全NA的行或者列,thresh筛选)/填充缺失值(是否返回新对象,,,)
set_index(,drop=)/reset_index 将其中一个或多个列转换成行索引(是否允许列从原dataframe移除)

数据为缺失值或者NA值时,表示为NaN

可以输入给DataFrame构造器的数据

类型  说明
二维ndarray 数据矩阵,可传入行列标
数组、列表、元组或字典 每个序列会编程DataFrame的一列,长度必须相同
Numpy的结构化/记录数组 由数组组成的字典
Series组成的字典 每个Series都会成为一列,
由字典组成的字典 各内层字典会成为一列,键会合并成结果的行索引
字典或Series的列表 各项会成为DataFrame的一行,键索引值会成为列索引
列表或元组组成的列表 类似“二维ndarray”
另一个DataFrame 沿用该索引
Numpy的MaskedArray 类似“二维ndarray”,掩码值变成缺失值或者NA值

DataFrame索引选项

类型  说明
obj[val] 选取DataFrame单列或一组列
obj.ix[val] 选取DataFrame单行或者多行
obj.ix[:,val] 选取单列或多列
obj.ix[val1,val2] 同时选取行列
reindex 将1轴或多轴重新匹配索引
xs 根据标签选取单行或单列,返回Series
icol,irow 根据整数位置选取单列或单行,返回Series

get_value,set_value

根据行列标签选取/设置单个值

层次化索引:

  MultiIndex

exp:   data = Series(np.random.randn(10), index=[['a',a','a','b','b','b','c','c','d','d'],[1,2,3,1,2,3,1,2,2,3]])

    data.unstack()  数据被重新安排到DataFrame ;stack()  逆运算

    swaplevel(调整某条轴上各级别的顺序),sortlevel(根据指定级别上的值对数据进行排序)

注:DataFrame和Series之间的运算和广播效果一样

  axis = 1----行,axis = 0 -----列

Panei数据结构(待补充。。。)

 

转载于:https://www.cnblogs.com/zhenglz12/p/7930667.html

你可能感兴趣的:(利用Python数据分析-Numpy和Pands篇)