一、基础
1.注释:#/'''   '''
2.标识符:首字符是字母和下划线
3.数据类型:数、字符串、
  列表【list】(元素支持修改)、abc=['my','you']
  元祖【tuple】(元素不支持修改)、cde=('my','you')
  集合【set】(并交差)、&|!
  字典【dictionary】(键:值){key1:value1,key2:value2}
4.运算符
5.缩进 建议tab
6.补充:calc(windows自带计算器),idle(python自带ide)
7.注意::爬去下我文件路径//(\文件目录)需要与网页路径一致//;http(https可能不行)
8.json:JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,
       它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,因为XML虽然可以作为跨平台的数据交换格式,
       但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,
       在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据.
二.控制流
1.if
2.while
3.for
4.中断break/continue
三、语法结构
1.作用域:局部/全局 global i(将i声明为全局)
2.函数:def a():
3.模块:import/from...  import...
4.文件:fp=open('f1','r')fp.close()
5.异常处理:try:
            except Exception as er:
               print(er)
四、爬虫基础
1.定义:定向采集和不定向采集。
2.正则表达式/xpath表达式:
  (1)原子:
       1.普通字符  2.非打印字符eg:\n
       3.通用字符匹配 \w (匹配任意字母数字下划线)\W(!\w) \s (匹配空白字符)
       4.原子表[] 定义一组平等的原子eg:[dsh]或d或s或h,只能是一位
  (2)元字符
       1.  .可以匹配任意字符
       2.  ^匹配字符串开始的位置 ; $匹配字符串结束的位置 
       3.  *匹配0、1、多次前面的原子; ?匹配0或1  ;+  匹配1或多次
       4.  t{n}前面的原子t出现n次; t{n,m}前面的原子t出现n--m次
       5.  |  或者 ; ()提取
  (3)模式修正符
       1.  I 忽略大小写 ;M多行匹配 ;L 
       U  据unicode解析字符 ;S 点也能匹配换行符
  (4)贪婪模式p.*y和懒惰模式p.*?y
  (5)函数
       1.re.match()--从头开始,头不匹配则错
       2.re.search()--只能出现一个结果
       3.re.compile(子串).findall(母串)全局匹配函数--输出多个结果
       4.re.sub函数---替换

五、爬虫实战——企查查
注意:爬去下我文件路径//(\文件目录)需要与网页路径一致//;http(https可能不行)
1.urllib库
  (1)urllib基础
       1.urlretrieve() //将网页直接爬取下来放在本地
         urlcleanup()  //将1.产生的缓存清理
         info()    //当前网页环境的一些信息
         getcode()  //获取当前网页的状态码 200正常,403禁止访问
         geturl()   //获取当前网页网址
  (2)超时设置
       timeout=n
       
  (3)自动模拟http请求
       1.get   从服务器请求
       2.post  请求访问服务器 (抓包技术fiddler) 
  (4)异常处理
       1.状态码  200请求正常 40X请求失败 50X错误服务器
       2.URLError(父类):连不上服务器;远程url不存在;本地没有网络;触发子类HTTPError
         HTTPError(子类)(有状态码及原因)
  (5)浏览器伪装技术
       通用代码:
        headers=('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0')  #User agent
opener=urllib.request.build_opener()#添加对应的报头信息
opener.addheaders=[headers]
urllib.request.install_opener(opener)#设opener为全局
  (6)新闻爬虫实战
       图片爬虫实战
       
【重要】(7)代理服务器(防屏蔽)
       西刺免费IP代理

六、抓包分析
   1.抓包概述 
      通过class id定位
   2.Fiddler
   3.抓取HTTPS数据包(证书添加)
   4.爬取腾讯视频的评论
     先得到第一条评论地址,再通过last找后续的地址
     u“”将unicode编码为中文
     'content'为评论内容;
     eval()函数就是实现list、dict、tuple与str之间的转化
     str()函数把list,dict,tuple转为为字符串
   5.微信爬虫
   6.多线程爬多线程
   (1)程序中的程序段并行执行,
   (2)糗事百科爬虫  import threading
七、Scrapy框架
    1.框架命令:scrapy -h查看命令   -l 查看列表 -e 查看版本   scrapy/fetch/--nolog
     
全局命令 (可以在项目中或者不在项目中使用)
        fetch     查看爬虫爬取的过程/--nolog 不产生爬取过程的日志
        runspider 不依托一个爬虫项目就可以运行一个爬虫文件
        shell     启动scrapy的交互终端(不启动scrapy项目的情况下对网站进行调试)测试
        startproject  创建爬虫项目
        version   查看对应版本信息
        settings  查看设置信息
        view      下载某个网页,并用浏览器查看
项目命令 (只能在项目中使用)
        bench   测试本地硬件性能(pages/min)不爬取内容,跟进链接
        genspider  在项目中创建爬虫文件  -t创建/-l列表 文件类型(basic(基础型)、crawl(自动型)、csvfeed(处理csv)、xmlfeed)
                   格式:scrapy genspider -t baisc chuchu(文件名) baidu.com(域名)                        
        check  测试
        crawl  运行爬虫文件  
        list   展示当前项目下可以使用的爬虫文件
        edit   直接通过编辑器打开文件(只能在linux下运行)
        parse  获取指定url网址(爬虫文件)并进行处理
       创建爬虫项目:scrapy startproject name;
       创建爬虫文件:scrapy genspider -t crawl name yuming.com
    2. Xpath 基于标签提取适合(网页) 
            /  在标签下一层一层的找
        text()提取标签下的文本
            @   提取属性的内容
           //   寻找当前页中所有的标签
        标签[@属性=值]  定位某一个标签
        eg:/html/head/title/text()
           //li[@class='a']/a/@href
    3. 爬虫项目
        (1)首先写items.py   定义爬取的容器
               content = scrapy.Field()用来存储的内容
               link = scrapy.Field()用来存储链接
        (2)设置pipelines.py 处理容器
               print(item['content'])
        (3)设置settings.py   配置pipelines.py         
               ITEM_PIPELINES = {
                   'first.pipelines.FirstPipeline': 300,
               }
               ROBOTSTXT_OBEY = False
        (4)写爬虫个文件
               def parse(self, response):
                   item = FirstItem()#将类实例化,将容器items导入
                   item['content'] = response.xpath('/html/head/title/text()').extract()
                   yield item #返回,可以继续执行下去,交给pipelines执行 
    4.爬虫方式
        (1) 自动爬虫(basic)   for循环
        (2) 通用爬虫(crawl)   首先爬取初始网址,获得链接,依次爬取链接(类似搜索引擎)

5.爬虫实战
        (1) 天善智能课程自动爬虫
(2) 自动模拟登录爬虫实战(验证码处理)
(3) 当当商城爬虫将内容写进数据库(过滤器/数据库primary key)
八:补充爬虫拓展
    1.json 数据的处理(不能用xpath,用正则式分析)
        (1)含义:json:JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,
                  它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,因为XML虽然可以作为跨平台的数据交换格式,
                  但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,
                  在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。
        (2)数据格式:{'id':'4654475','status':0,'name':'wwej',,,,,}   
(3)json导包
    2.分布式爬虫的构建思路
        (1)用到的东西:scrapy\scrapy-redis\redis作分布式数据库(集群)
        (2)环境:Linux   
        (3)分布式:redis
    3.Linux基础
        (1)
    4.爬虫面试
九:数据分析
    1.挖掘过程:
(1)定义目标
        (2)获取数据(爬虫或者数据下载)
(3)数据探索
(4)数据预处理(数据清洗【去掉脏数据(无效、异常)】,数据集成【集中】,数据变换【规范化】,数据规约【精简】)
(5)挖掘建模【算法】(分类,聚类,关联,预测)
(6)模型评价与发布
    2.模块导包:
(1)numpy-mkl(最先下载安装):高效处理数据,数组支持,基础库(提供其他模块支持)
(2)pandas:数据挖掘、分析(数据导入)
(3)matplotlib:作图,可视化
(4)scipy(下载安装):数值计算、矩阵运算,高级数据处理(积分,傅立叶,微分)
(5)statsmodels:统计分析
(6)Gensim:文本挖掘(相似度)
(7)sklearn:机器学习 
(8)keras/tensorflow:深度学习
         数据导入   csv excel mysql html 文本数据
    3.数据探索
(1)数据质量分析(数据清洗)
             1)缺失值处理(通过describe与len【有值与无值+有值】,通过0数据发现)
    2)异常值处理(处理方式:删除,插补,不处理)
插补:均值插补,中位数插补,众数插补,固定值插补,最近数据插补,回归插补,拉格朗日插补,牛顿插值,分段插补
异常值:视为缺失值,删除,修补,不处理
(2)数据特征分析(分布,对比,周期性,相关性,常见统计量)
(3)数据集成:把不同来源的数据放在一起。(实体识别和冗余属性识别)
             1)观察数据源,发现其中关系,发现同名不同意,同意不同名
    2)进行数据读取和整合
    3)去除重复数据
    4.数据预处理
(1)数据变换(开方,平方...)
(2)数据规范化
   1)离差标准化:(最小最大标准化)(将大数据转化小数据,消除量纲(单位)和变异大小影响)
            x1=(x-min)/(max-min)
   2)标准差标准化:(零-均值标准化)(消除单位影响和变量自身变异影响)
      x1=(x-平均数)/标准差
   3)小数定标规范化(消除单位影响)
      x1=/10**(k)(10的倍数)
      k=log10(x的绝对值的最大值)
(3)连续型数据离散化
            1)等宽离散化
   2)等频率离散化(相同数量的记录放在一个区间里)
     3)一维聚类离散化(聚类算法)
(4)属性构造
(5)数据规约(精简数据)import sklearn.decomposition
   1)属性规约:主成分分析(PCA降维算法) 
            2)数值规约:
    5.文本挖掘  import jieba(中文分词)
(1)词典(盘古词典)
(2)文本相似度——TF-IDF模型(信息检索和数据挖掘的加权技术)
   TF-IDF模型:统计方法,评估一字词对于一个文件集过词库的重要程度。
   import Gensim
  (3)相似度计算步骤【重要】
         1)读取文档
     2)对要计算的文档进行分词
     3)对文档进行整理成指定格式,方便后续的计算
     4)计算出词语的频率  
         5)【可选】对频率低的词语进行过滤
       6)通过语料库(corpus从文本中提取出的语言材料)建立词典
       7)加载要对比的另一个文档
         8)将要对比的文档通过doc2bow转化为稀疏向量
           9)对稀疏向量进行进一步处理,得到新语料库,将新语料库进行处理
           10)通过models将新语料库通过TF-IDF模型进行处理,得到TF-IDF
             11)通过token2id得到特征数
       12)通过similarties得出稀疏矩阵相似度,从而建立索引
       13)得到最终相似度结果
     6.词云
(1)用到的包:jieba+wordcloud+matplotlib/pillow
(2)
     7.机器学习(库sklearn/keras)
  算法分类:分类(有明确类别)、聚类(无明确的类别)、关联分析、预测、时序模式和偏差分析
算法的思路:
1)明确需求并对数据进行观察
2)确定算法
3)确定步骤
4)编程实现
(1)分类算法:
1)KNN近邻算法(识别验证码,手写体识别,pillow)
  1.处理数据;
  2.数据向量化;
  3.计算欧几里得距离;
  4.根据距离进行对比分类
2)贝叶斯方法(某一类是另一类的概率)手写体识别
  1.
3)回归方法:
  1.线性回归
  2.逻辑回归
  3.岭回归
4)决策树
  1.ID3(信息增益)
  2.C4.5
  3.CART
5)人工神经网络(课程销量预测,手写体识别)
  1.原理:权重和X(xw)——激活函数f(x)——输出
           激活函数:阈值函数/Relu函数/分段线性函数/非线性转移函数
  2.人工神经网络模型:
BP神经网络(逆向传播):开始,初始化,输入信号(样本学习),中间层,输出层,
                                              输出层误差,中间层误差,调整中间层期权值和阈值,调整输出层权值和阈值,
     学习完成,误差是否满足要求 满足or达到最大学习次数就结束,不满足继续学习(输入)。
RBF神经网络
FNN神经网络
LM 神经网络
6)支持向量机(SVM)

(2)聚类算法:(划分(分裂)法、层次分析法、密度分析法、网格法、模型法)
1)kmeans(划分法):
   1.随机选择k个点作为聚类中心;
   2.计算各个点到这k个点的距离;
   3.将对应的点聚到与它最近的聚类中心;
   4.重新计算据诶中心;
   5.比较当前聚类中心与前一次聚类中心,如果是同一个点,得到聚类结果,若为不同的点,则重复2-5
2)层次法
3)密度分析法
(3)关联:Apriori算法(课程关联分析,自动推荐)
1)理论:
 支持度:事物A,B同时发生的概率 Support(A=>B)=P(A and B)
 置信度:若A发生,B发生的概率   Confidence(A=>B)=(B|A)
2)Aprioir算法的实现
  1.阈值:最小支持度,最小置信度
  2.计算:支持度:Support(A=>B)=(A,B同时发生的数量)/事件总数量=Support_count(A and B)/Total_count(A)
  置信度:Confidence(A=>B)=P(B|A)=support(A and B)/support(a)=support_count(A and B)/support(a)
  3.筛选:
  4.继续计算:
8.情感分析(微薄):
 (1)文本分析:
 (2)数据抓取:接口开发,爬虫,PhantomJS
 (3)PhantomJS:无界面浏览器
十、深度学习(库sklearn/keras/tensorflow)
1.原理:单层感知机——多层感知机(NLP)/人工神经网络(ANN)——深度神经网络/深度学习(DNN)
2.分类:1)监督学习:循环网络(RNN):循环网络/双向循环网络/递归循环网络    应用:LSTM、 语音分析,文字分析,时间序列分析
  卷积网络(CNN):卷积变换,池化,处理网络状数据
  普通深度神经网络(DNN):BP算法,处理大数据
       2)无监督学习:深度生成模型(DBNN深度信息网络/GAN生成式对抗网络),自编码器

python学习笔记(一)数据处理相关推荐

  1. 【Python学习笔记—保姆版】第四章—关于Pandas、数据准备、数据处理、数据分析、数据可视化

    第四章 欢迎访问我搞事情的[知乎账号]:Coffee 以及我的[B站漫威剪辑账号]:VideosMan 若我的笔记对你有帮助,请用小小的手指,点一个大大的赞哦. #编译器使用的是sypder,其中&q ...

  2. PYTHON学习笔记之(一)2020.08

    PYTHON学习笔记之(一)2020.08 Python基础 数据类型 常见的列表.字典,以及元组.集合. 1 列表 list 1.1 列表转换字符串 stu = ['王一', '李二', '张三'] ...

  3. Python学习笔记---merge和concat数据合并(1)

    Python学习笔记-merge和concat数据合并(1) Python学习笔记-merge和concat数据合并(2) 文章目录 Python学习笔记---merge和concat数据合并(1) ...

  4. 零基础学Python学习笔记

    Python学习笔记 代码下载地址 链接:https://pan.baidu.com/s/1yGnpfq4ZHeKpt4V0J_PTSg 提取码:hmzs 1. Python 基础语法 1.1 基本数 ...

  5. 【Python学习笔记】第八章 函数

    [Python学习笔记]第八章 函数 文章目录 [Python学习笔记]第八章 函数 前言 8.1 定义函数 8.2 调用函数 8.2.1 使用位置参数调用函数 8.2.2 使用关键字参数调用函数 8 ...

  6. Python学习笔记19:列表 III

    Python学习笔记19:列表 III 其实这篇笔记标题应该是列表扩展,从列表开始,将涵盖Python中的序列容器. 关于列表的基础知识,可以看我的前两篇文章: Python学习笔记1:列表. Pyt ...

  7. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  8. python学习笔记之编写readConfig读写配置文件

    python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客

  9. Python学习笔记(十一)

    Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...

  10. Python学习笔记一简介及安装配置

    Python学习笔记一 参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e54 ...

最新文章

  1. C语言访问MYSQL数据库的完整的代码例子
  2. 台湾国立大学郭彦甫Matlab教程笔记(10) basic plotting下
  3. ViewPager 的适配器 PagerAdapter 、FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别
  4. 使用Qt Assistant
  5. 手动实现Spring中的IOC容器
  6. Windows系统上3种连接Docker虚拟机的方法
  7. 项目疑难杂症记录(三):EditText获取不到焦点了?
  8. HDU 3197 Game(树删边)
  9. 解决asp数据库对象只读的办法
  10. Net Core 实现谷歌翻译ApI 免费版
  11. 海康威视摄像头web端播放
  12. java烟花代码详细步骤,一文说清!
  13. 物联网技术到底是什么技术?
  14. java的八大基本类型
  15. 读《从零开始学理财》
  16. 深入学习java的困惑:3年开发,下一步学习的方向以及要做什么?
  17. 《东周列国志》第八十四回 智伯决水灌晋阳 豫让击衣报襄子
  18. 开源项目学习:cJSON库的学习和使用(上)---以天气JSON数据为例
  19. Java基础:数据类型与变量
  20. Java中Type接口与Class类的区别联系

热门文章

  1. 钱文品 | 《Redis在海量数据和高并发下的优化实践》主题分享
  2. Android性能优化(三):响应优化
  3. 第 5 章 函数和代码复用
  4. 电脑设置了从睡眠中唤醒需要密码却没生效(已解决)
  5. ae显示不能动态链接服务器,ae pr如何联动、建立动态链接?
  6. arcgis enterprise三维发布失败问题记录及解决办法汇总(后续会继续更新)
  7. Qt开发技术:Qt的动态静态插件框架介绍和Demo
  8. 错误Error: A React component suspended while rendering, but no fallback UI was specified
  9. 通过GitHub静态网页托管,十分钟制作一份精美的在线网页简历
  10. 企业购买银行理财产品如何核算