数据分析学习笔记1

最近在学习极客时间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)
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容