数据分析 知识体系 Python篇

numpy

基本属性

  • n维数组;数值运算
  • 创建数组: np.array(list,dtype=)
  • 数组维度:array.ndim
  • 数组形状:array.shape
  • 数组元素个数:array.size

创建数组

  • 普通创建:np.array(list)
  • 全0数组:np.zeros((row,col))
  • 全1数组:np.ones((row,col))
  • 有序数列:np.arange(num); np.arange(start,end,by)
  • 改变形状:array.reshape((row,col))
  • 生成线段:np.linspace(start,end,num)

基础运算

    a = np.array([1,2,3,4]).reshape((2,2))
    b = np.arange(4).reshape((2,2))
  • np.fun(array) 多数情况等于 arrary.fun()
  • 加减乘除等运算都是作用于元素: a*b;sin(a);a<3:返回布尔值
  • 矩阵相乘:np.dot(a,b); 有第一点,还可以表示为a.dot(b)
  • 矩阵转置:np.transpose(a);a.T
  • 随机矩阵(元素为0-1的随机数):np.random.rand(row,col)
  • 随机矩阵(元素服从标准正态分布):np.random.randn(row,col)
  • 数组求和:np.sum(a)
  • 数组求最值:np.max(a);np.min(a)
  • 行/列操作:np.sum(a,axis=0/1) 0表示跨行(垂直);1表示跨列(水平)
  • 最值索引:np.argmin(a);np.argmax(a)
  • 平均:np.mean(a)
  • 中位数:np.median(a)
  • 累加:np.cumsum(a)
  • 累差:np.diff(a)
  • 逐行排序:np.sort(a)
  • 截取矩阵:np.clip(a,min,max) 所有小于min的数=min,大于max的数=max

索引切片

  • i行:a[i]
  • j列:a[:,j]
  • i行j列:a[i][j];a[i,j]
  • i行n-m列:a[i, n:m]
  • 把数组展为1维数组:a.flatten()

合并

  • 垂直合并: np.vstack((a,b))
  • 水平合并:np.hstack((a,b))
  • 多个数组合并:np.concatenate((a,b,c,d),axis=0/1)

分割

  • 等量分割:np.split(a,n,axis=) (n表示分割成几块)
  • 不等量分割:np.array_split(a,n,axis=)
  • 竖直分割:np.vsplit(a,n)
  • 水平分割:np.hsplit(a,n)

浅拷贝和深拷贝

  • 浅拷贝:b复制a,修改a后b跟着改变;增加指针指向已存在的内存地址。b = a
  • 深拷贝:b复制a,修改a后b不跟着改变;增加指针且申请了一个新的内存地址。b = a.copy()

pandas

基本属性

  • 数据框;数据处理;基于numpy
  • 创建df:pd.DataFrame(data,index,columns)
  • df类型:df.dtypes
  • df 行名/列名/值:df.index/df.columns/df.values
  • df描述:df.describe()
  • df转置:df.T
  • 按索引排序:df.sort_index(axis=0/1,ascending=bool)
  • 按值排序:df.sort_values(by=col_name,ascending)

选择数据

df = pd.DataFrame(data,columns=['A','B','C'],index=[1,2,3])
  • 选择某列:df[‘A’];df.A
  • 选择某行:df[i:i+1]
  • 按标签选择:df.loc[ [1,2],[‘A’,'B’] ]
  • 按位置选择:df.iloc[i,j];df.iloc[i:j,k:l];df.iloc[[1,2,4],1:4]
  • 混合选择:df.ix[]
  • 条件选择:df[df.A<3]

处理缺失值

  • 丢弃:df.dropna(axis,how=‘any’/‘all’)
  • 填充:df.fillna(value=0)
  • 检查:df.isna().sum()

导入/导出数据

  • 导入csv:pd.read_csv(’…csv’)
  • 导出数据:df.to_csv(‘文件名’)

concat合并

concat([df1,df2,df3],axis,ignore_index,join,join_axes)

  • axis: 0纵向/1横向
  • ignore_index: True表示对旧index整合成新的index
  • join:inner取交集;outer取并集
  • join_axes:选择对齐的索引

df1.append([df2,df3])

  • 纵向合并,将df2,df3添加到df1下面

merge合并

pd.merge(left,right,on=[‘key1’,‘key2’],how=‘inner’/‘outer’/‘left’/‘right’,indicator,suffixes)

  • on:以某个列名作为连接键
  • how:连接方式
  • indicator:取值为True时,显示merge方式
  • suffixes=[左表后缀名,右表后缀名]:为列名增添后缀

pd.merge(left,right,left_index=True,right_index=True,how=’’)

  • left_index/right_index:取值为True时,按行名连接

matplotlib.pyplot

Series

data = pd.Series(...)
data.plot() / plt.plot(data)
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值