美文网首页
数据分析学习笔记1

数据分析学习笔记1

作者: Andytl的世界 | 来源:发表于2019-12-30 07:22 被阅读0次

    最近在学习极客时间APP中的《数据分析实战45讲》,每天学一点,积累起来是一座高高的壁垒。以下是每天学习的笔记。
    《数据分析实战45讲》每日打卡
    开篇词,你为什么需要数据分析能力?
    数据是未来的石油,谁掌握了数据分析能力,谁就拥有了财富。
    如何学习数据分析呢?作者以前招过一个实习生,一年内从3k月薪到1.3w,总结起这个实习生的学习方法概括为: MAS 方法。Multi-Dimension:想要掌握一个事物,就要从多个角度去认识它。Ask:不懂就问,程序员大多都很羞涩,突破这一点,不懂就问最重要。Sharing:最好的学习就是分享。用自己的语言讲出来,是对知识的进一步梳理。
    这个专栏的目的就是做到第一点,帮助学员从多个角度与数据分析建立链接。把学习重心放在工具和实践上,即学即用,不断积累成就感,思维也就慢慢养成了。

    《数据分析实战45讲》每日打卡
    第一讲,数据分析全景图及修炼指南
    一、数据分析全景图
    我们在谈论数据分析的时候在谈论什么呢?主要分三个部分数据采集数据挖掘数据可视化
    1.数据采集
    可以使用“八爪鱼”等工具采集,也可以写Python爬虫。
    2.数据挖掘
    数据挖掘涉及数据和算法基础,结合案例学习更合适。
    3.数据可视化
    数据往往是隐性的,数据量大了人很难感知,用数据可视化可以更好分析结果。可以使用Python,也可以用第三方工具。
    二、修炼指南
    1.不要重复造轮子
    2.熟练使用工具

    《数据分析实战45讲》每日打卡
    第二讲,学习数据挖掘的最佳路径是什么?
    1.数据挖掘的基本流程
    商业理解->数据理解->数据准备->模型建立->模型评估->上线发布
    2.数据挖掘十大算法
    分类算法:C4.5,朴素贝叶斯(Naive Bayes),SVM,KNN,Adaboost,CART
    聚类算法:K-Means,EM
    关联分析:Aprioril
    连接分析:PageRank
    其他算法都是在这10个算法基础上演变而来。
    3.数学原理
    概率论与数理统计、线性代数、图论、最优化方法。其中除了图论,其他内容在读书时都有接触。

    《数据分析实战45讲》每日打卡
    第三讲,Python基础语法
    以前学过Python,了解基础语法,简单易用而且第三方库很强大。除了 Python 自身的特点,Python 还有强大的开发者工具。在数据科学领域,Python 有许多非常著名的工具库:比如科学计算工具 NumPy 和 Pandas 库,深度学习工具 Keras 和 TensorFlow,以及机器学习工具 Scikit-learn,使用率都非常高。

    1. IDE
      Pycharm以前用过,启动比较慢,但对python的原生支持很好。
      Sublime Text,下载试用了一下,可以安装各种插件,常用的package control(安装插件的插件)、SublimeCodeIntel(代码提示插件)。参考1(sublime+python配置),参考2(package control启动问题).sublimecodeintel还有问题,参考3。sublime text虽然很快,很多插件,比较灵活,但是配置稍微复杂。还是用pycharm集成环境。

    2. Online Judge
      浙大ACM的online judge平台,在线编码答题。对提高python语言和算法熟练度很有帮助。其他在线编码平台,leetcode,pythontip
      使用体验:浙大的oj平台全英文,不是很友好。
      leetcode力扣上解答题目界面比较友好,而且可以看排名,算法时效性也能测出来,支持各种语言,主要是对熟练算法,比较不错。
      pythontip主要是考察python语法,对熟悉使用python很有帮助。
      每天可以练习一题leetcode和pythontip,提高对算法和语法的熟练程度。

    3. 问题回答
      (1)如何引入scikit-learn库
      安装skikit-learn库后,import sklearn
      (2)sum(list(range(1,100,2)))一句话写完

    《数据分析实战45讲》每日打卡
    第四讲,Numpy介绍
    Numpy是Python中使用最多的第三方库,是科学计算、数据分析的基础,提供比Python更高效的数据结构。
    1.Numpy特点-高效
    Numpy的数据结构在底层使用连续内存块,比Python自带的list分散存储读取效率更高。不需要为每个数组元素维护一个指针,节省空间。Numpy矩阵计算采用多线程方式,利用多核CPU,提高计算效率。
    2.Numpy中的数据结构
    ndarray对象存储多维数组,类似于matlab中的数组。Numpy中还可以通过dtype定义结构类型,类似于C语言中的结构体。
    3.Numpy中的处理函数
    ufun对数组中每个元素进行操作,用C语言编写的,效率非常高。ufun函数包括:创建数组(arange、linespace),算数运算(加、减、乘、除、乘方、求模),统计函数(最值、平均数、方差、百分位数、中位数等),排序(sort函数)
    4.问题回答

    import numpy as np
    studenttype = np.dtype({
        'names':['name', 'Chinese', 'English', 'Math'],
        'formats':['S32', 'i', 'i', 'i']
    })
    students = np.array([('zhangfei',66, 65, 30),('guanyu', 95, 89, 98),('zhaoyun', 93, 92, 96),('huangzhong', 90, 89, 77),('dianwei', 80, 90, 90)],dtype=studenttype)
    
    print(np.mean(studengts[:]['Chinese']))
    print(np.min(students[:]['Chinese']))
    print(np.max(students[:]['Chinese']))
    print(np.var(students[:]['Chinese']))
    print(np.std(students[:]['Chinese']))
    

    《数据分析实战45讲》每日打卡
    第五讲,pandas介绍
    在数据分析中,Pandas使用频率很高,因为Pandas的数据结构DataFrame与json契合度高,而且简单的数据清晰几句代码搞定。

    1. Pandas数据结构
      Series 是个定长的字典序列。说是定长是因为在存储的时候,相当于两个 ndarray,这也是和字典结构最大的不同。因为在字典的结构里,元素的个数是不固定的。
      DataFrame 看成是由相同索引的 Series 组成的字典类型,类似数据库中的表。

    2. 数据导入导出
      Pandas 允许直接从 xlsx,csv 等文件中导入数据,也可以输出到 xlsx, csv 等文件,非常方便。

    3. 数据清洗
      drop() 函数 删除 DataFrame 中的不必要的列或行;rename() 函数重命名列名 ; drop_duplicates() 去重复的行;astype ()函数来规范数据格式;strip() 函数删除数据间空格;isnull()查找空值;fillna()填补空值;apply()函数中可以自定义清洗规则。

    4. 数据统计
      count()计数;min()最小值;max()最大值;sum()求和;mean()平均值等等。

    5. 数据表合并
      有时需要将多个渠道源的多个数据表进行合并,使用merge()函数,有5中方式。
      基于指定列进行连接pd.merge(df1, df2, on='name'),取name字段相同的部分合并;
      内连接pd.merge(df1, df2, how='inner'),取两个表主键的交集的部分合并;
      左连接pd.merge(df1, df2, how='left'),以第一个表为主,第二个表为辅助合并;
      右连接pd.merge(df1, df2, how='right'),以第二个表为主,第一个表为辅助合并;
      外连接pd.merge(df1, df2, how='outer')两个表的并集。

    6. 使用SQL,pandasql工具
      使用pandasql工具可以直接使用 SQL 语句来操作 Pandas,pandasql 中的主要函数是 sqldf,它接收两个参数:一个 SQL 查询语句,还有一组环境变量 globals() 或 locals()。

    7. 问题回答

      import pandas as pd
      from pandas import Series, DataFrame
      data = {'Chinese': [66, 95, 93, 90,80,80],'English': [65, 85, 92, 88, 90,90],'Math': [None, 98, 96, 77, 90,90]}
      df = DataFrame(data, index=['ZhangFei', 'GuanYu', 'ZhaoYun', 'HuangZhong', 'DianWei', 'DianWei'], columns=['Chinese', 'English', 'Math'])
      print(df)
      
      df = df.drop_duplicates()
      print(df)
      
      def sum_subject(df):
          df = df.fillna(0)
          df['Sum'] = df['Chinese']+df['English']+df['Math']
          return df
      
      df = df.apply(sum_subject,axis=1)
      print(df)
      

    相关文章

      网友评论

          本文标题:数据分析学习笔记1

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