数据分析三剑客学习总结

Numpy

  • 数组的创建
    • np.array(data = 列表)
    • plt.imread(图片地址)
    • np.ones()全部为1
    • np.linspace()创建等差数列,一维数组
    • np.arange()创建等差数列,一维数组
    • np.random.randint()创建任意维度的数组
  • 常用属性
    • shape 返回数组的形状
    • ndim 返回数组的维度
    • size 返回数组元素的个数
    • dtype 返回元素的数据类型
  • 修改数组的数据类型
    • arr.dtype = 赋值
    • astype(数据类型)
  • numpy数组主要存储数值型的数据
    • int, float
  • 索引
    • 索引取行:arr[行索引]
    • 索引取列:arr[:,列索引]
    • 索引取元素: arr[行索引:列索引]
  • 切片:与pandas不同
    • 切行:arr[行切片(xx:xx)]
    • 切列:arr[:, 列切片]
  • 级联:concatenate
    • 将多个numpy进行横向或者纵向的拼接(需要根据需要保证列数或者行数相等) -> 与pandas不同
  • 变形:reshape
    • reshape()需要保证元素个数相等
  • 基于切片反转图片
    • arr[::-1, ::-1]
    • 基于切片反转图片
  • 聚合函数
    • max, min, mean, min
  • 统计函数
    • std 标准差
    • var 方差
  • 矩阵
    • 转置:T
    • 矩阵乘法

Pandas

  • 两个常用的类
    • Series, DataFrame

  • Series(一维的数据结构)
    • 创建形式:
      • Series(data=list)
      • Series(data=np.array())
      • Series(data=dic)
    • isnull(), notnull() 检测Series是否为空或者是否为非空
    • unique() 对元素去重
    • nunique() 统计去重后的元素个数
    • Series 运算法则
      • 如果两个Series之间进行算术运算, 则可以对索引一直的元素进行运算,否则为空
    • Series的显示索引,可以通过设置index设置其显示索引,不会覆盖隐式索引

  • DataFrame(二维的数据结构)
    • 创建方式:
      • DataFrame(data=二维列表)
      • DataFrame(data=二维的numpy数组)
      • DataFrame(data=字典)
    • 显式索引: 通过设置index,columns设置其行和列的显式索引
    • 索引操作:
      • DataFrame[‘列索引’] 索引取列
      • DataFrame[[‘c1’, ‘c2’]] 索引取多列
      • DataFrame.iloc[‘行索引’] 索引取行
      • DataFrame.iloc[[i1, i2]] 索引取多行
      • iloc[隐式索引]
      • loc[显式索引]
      • DataFrame.iloc[行索引, 列索引]
    • 切片操作:
      • 切行:DataFrame[行切片(xx:xx)]
      • 切列:DataFrame.iloc[:, 列切片(xx:xx)]
    • 时间类型的转换
      • pd.to_datetime(DataFrame[‘data’])
    • 将列转化为行索引
      • set_index(df[‘col’])
    • DataFrame持久化存储
      • DataFrame.to_xxx()
    • DataFrame的数据加载
      • pd.read_xxx()
    • 指定数据的删除:
      • drop() 注意axis与正常的情况相反
    • 将Series的元素整体的上移或者下移:
      • shift(x)
    • 可以将布尔值作为数据的行索引
    • 数据的重新取样: resample(‘M’).first() 可以取月份最后或者第一天
    • rolling(5).mean() 5日均值
    • sort_index() 根据索引排序
    • sort_value() 根据值排序
    • DataFrame的级联: concat()
      • 匹配级联和不匹配级联
    • DataFrame的合并: merge() 需要一列共同的值合并,有left_on,right_on
      • how:inner(为了防止数据丢失通常不用), outer, left, right
    • DataFrame 运算法则同Series
    • DataFrame的条件查询query() 比索引取行查询方便的多,可在后边编写条件,取出符合条件的行
    • DataFrame的替换操作: replace()
      • 单值替换
      • 多值替换
      • 指定列替换
    • 映射: map(只能用到Series中后便跟字典形式的映射表)
    • Series运算工具:map(func)
    • 随机抽样
      • take():打乱DataFrame的行和列
      • random.randint(n) 随机乱序数列
    • apply 是DataFrame的运算工具,对DataFrame的行或者列进行运算
    • applymap 是对DataFrame中的每一个元素进行运算
    • 数据清洗
      • 缺失值
        • any, all, dropna, fillna
      • 重复值
        • drop_duplicates(keep)
      • 异常值
        • 基于异常值判定条件返回的布尔值取出索引去除异常值得操作
    • 分组操作
      • groupby(by=‘xx’)
    • 分组聚合
      • agg([‘xx’, ‘cc’])分组后实现多种操作
    • 高级聚合
      • 自定义分组后的聚合函数
      • apply(func), transform(func)
    • 透视表(pivot_table) 用法比较困难
      • 参数:
        • index
        • value
        • aggfunc
        • columns

Matplotlib

  • 线形图:plt.plot()
  • 柱状图:plt.bar()
  • 直方图:plt.hist()
  • 饼图: plt.pie()
  • 散点图: plt.scatter()

axis轴向:

  • 在drop, dropna, take中axis=0表示行,axis=1表示列
  • 在其他函数中,axis=0是列, axis=1是行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值