美文网首页
#Python小组第四期3组第一次学习总结#

#Python小组第四期3组第一次学习总结#

作者: DrBear_smile | 来源:发表于2017-11-04 22:57 被阅读0次

    [TOC]

    第一章 Python与数据分析概况

    课时1 指南

    主要介绍python在数据处理、数据分析、数据可视化的常用方法与技巧

    课时2 数据分析概况

    宽泛的数据分析定义

    基于数据进行分析,基本方法有对比分析、结构分析等,高级的分析方法有聚类、回归等,数据分析的作用是对数据所折射的事件进行探索,分析现状,寻找原因(过去),预测未来。

    数据分析的流程

    graph LR
    A[分析目的] --> B[数据准备]
    B --> C[数据处理]
    C --> D{数据分析}
    D --> E[数据展现]
    E --> F[分析报告]
    
    • 分析目的: 分析框架,角度,切入方式,数据维度(指标)
    • 数据准备:收集数据,从公司内部的数据仓库,公开的出版物,互联网上的市场调研数据
    • 数据处理:数据的加工过程
    • 数据分析:此处指分析过程,具体指各种分析方法与数据应用思考
    • 数据展现:参考B组Power BI和Tableau组的学习内容,将数据更形象的表达
    • 总结报告:仪表盘,分析的结论

    基本分析方法

    对比、分组、结构、分布、交叉、矩阵等

    高级分析方法

    回归、聚类、决策树、神经网络、因子分析、时间序列等

    数据展现

    图标(表格、图形),帮助决策者快速理解数据信息

    分析报告

    总结呈现,产生数据的事件的分析,起因、过程、结果,报告中最为关键的是
    建议,提供决策支持。

    课时3 Python 概况

    3W2H

    What

    免费、自由的编程语言,一种分析、挖掘工具

    Who

    使用人员

    • 系统应用人员

    软件、游戏、系统维护

    • 互联网开发人员

    Web、运维、网络维护

    • 统计分析人员

    统计分布、假设检验、统计建模

    • 数据挖掘人员

    挖掘算法、数据建模、机器学习

    • 可视化人员
    Why
    • 解释型、动态语言
    • 可执行的伪代码
    • 代码风格简洁、优美
    • 丰富的第三方应用包
      • pandas 数据处理
      • sklearn 机器学习
      • matplotlib 可视化
      • numpy 数据计算
    How & How Continue

    编码、分析,多看多练

    后续课程:

    • 数据分析
    • 统计分析
    • 数据挖掘
    • 数据抓取

    第二章 python安装

    课时4 安装

    AnaConda

    下载方式

    • 群共享[课程的群共享,非爱数圈的群]

    本人亲测有效:

    • 教育网下载
    • VPN翻墙
    • 适配电脑
      • 64/32
      • Windows/Linux/Mac
    • 本课程 python 3.4
    • 安装路径
      • 无空格
      • 无中文
      • 环境变量 勾选自动

    课时5 使用

    • Spyder

    win10可以把Navigator直接放到任务栏锁定

      • project 方便管理开发内容
        • panes: ctrl+shift+P
      • 代码提示功能
      • 变量浏览窗口
      • ipython 交互式窗口

    第三章 数据准备

    课时6 数据类型

    定义、赋值、变量

    • 定义数据
    • 给变量赋值
    • 变量即数据赋值对象
      • 命名规则:a-z,A-Z,数字,_
      • 首字母不得为数字或者_
      • 大小写敏感
      • 不得占用保留字

    数据类型

    • 逻辑(布尔型)

    取值:True, False

    运算符:&,|, not

    • 数值

    实数,-,0,+

    运算符:+、-、、/、//、%、*、浮点
    [精度运算 decimal]

    • 字符

    转义字符 \

    原始字符声明 r' '

    '',"",""" """

    课时7 数据结构

    相互之间存在一种或多种关系的数据类型的集合

    • 概念
    • 定义
    • 限制
    • 访问[查]
    • 修改[增、删、改]

    pandas

    • Series
      • 从0开始计数
      • 不得越界
      • 不得append元素,只能append(n)|where n.type is Series
      • 索引a:b 实际上是a<=x<b, 左闭右开
      • drop 依据索引或依据值进行删除
    • DataFrame
      • 多行多列,类比Excel
      • drop axis = 0, 删除行
      • drop axis = 1, 删除列
    # -*- coding: utf-8 -*-
    
    """
    First Lesson: 
        try to use spyder with py3.6
    """
    
    import numpy
    import matplotlib
    from pandas import read_csv
    import matplotlib.pyplot as plt
    
    data = read_csv("data.csv")
    
    """
    通信品牌,号码
    动感地带,183
    全球通,139
    全球通,137
    神州行,1352
    神州行,1351
    神州行,1353
    """
    
    gb = data.groupby(
            by=['通信品牌'],
            as_index=False
    )['号码'].agg({
            '用户数':numpy.size
    })
        
    font = {
            'family' : 'SimHei'
    }
    
    matplotlib.rc('font',**font)
    
    plt.pie(
            gb['用户数'],
            labels=gb['通信品牌'],
            autopct='%.2f%%'
    )
    
    plt.show()
    

    课时8 向量化运算

    并行计算的一种方式,数组/向量/矩阵

    • 等差数列
    • 四则运算
    • 函数计算
    • 避免用循环for
    • 过早的优化是魔鬼

    问题:如何理解?

    • lambda 匿名函数
    • axis的操作疑问

    3.3课的df.apply(min,axis=1)是遍历行,3.2课的df.drop(1, axis=0)是按行索引进行删除某行数据,或者说遍历行后进行删除。那么这个axis取0还是取1是行呢?

    马尔克ov: 遍历行 换个方式就是对列的每一个数据做操作*

    # -*- coding: utf-8 -*-
    
    #生成一个整数的等差序列
    #局限,只能用于遍历
    r1_10 = range(1, 10, 2)
    
    for i in r1_10:
        print(i)
    
    r1_10 = range(0.1, 10, 2)
    
    
    #生成一个小数的等差序列
    import numpy
    numpy.arange(0.1, 0.5, 0.01) 
    
    r = numpy.arange(0.1, 0.5, 0.01) 
    
    #向量化计算,四则运算
    r + r
    r - r
    r * r
    r / r
    
    #函数式的向量化计算
    numpy.power(r, 5)
    
    #向量化运算,比较运算
    r>0.3
    #结合过滤进行使用
    r[r>0.3]
    
    #矩阵运算
    numpy.dot(r, r.T)
    
    sum(r*r)
    
    from pandas import DataFrame
    df = DataFrame({
        'column1': numpy.random.randn(5),
        'column2': numpy.random.randn(5)#,
        #'column3': abs(numpy.random.randn(5))
    })
    
    df.apply(min)
    
    df.apply(min, axis=1)
    
    #判断每个列,值是否都大于0
    df.apply(
        lambda x: numpy.all(x>0), 
        axis=1
    )
    #结合过滤
    df[df.apply(
        lambda x: numpy.all(x>0), 
        axis=1
    )]
    
    

    相关文章

      网友评论

          本文标题:#Python小组第四期3组第一次学习总结#

          本文链接:https://www.haomeiwen.com/subject/uygqmxtx.html