Python学习

一、安装python解释器

官网下载:https://www.python.org/downloads/windows/
在这里插入图片描述

安装步骤:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完成后,打开cmd工具,在里面输入python,测试环境
在这里插入图片描述
因为安装时,勾选的是自动配置环境变量,所以无需在进行环境变量的配置,直接可以使用。

二、安装pycharm IDE软件

pycharm IDE是jetbrains公司开发的软件,包括写前端用的webstorm,写java用的idea都是该公司的产品,所以此次学习选择使用pycharm IDE这款软件。

官网下载:https://www.jetbrains.com/zh/pycharm/specials/pycharm/pycharm.html

破解教程

安装比较简单,不写了。

软件装好了,开始学习,只是把我自己觉得有用的记录下来,有很多很多细节,和java有很多很多区别,还需要在实践中体会!!!

三、PIP

window下:
在python安装目录,有个Scripts文件夹,里面有一系列和easy_install有关的文件。
打开cmd命令行,进到这个文件夹下,执行easy_install.exe
在这里插入图片描述
而后该文件夹下会出现一系列和pip有关的文件,其中有pip.exe。
在这里插入图片描述
和之前处理python.exe的方法一样,将pip.exe的路径也添加到环境变量PATH中,在cmd下输入“pip”,如果能识别"pip"指令,则说明pip安装成功了。
在这里插入图片描述
在这里插入图片描述
其实装不装无所谓,pycham里快捷键alt+回车。

四、实现简单爬虫功能

import urllib.request;
 
url = "http://www.zhihu.com"
page = urllib.request.urlopen(url).read()
page = page.decode('utf-8')
print(page)
 
# urllib是python的标准库,包含了从网络请求数据,处理cookie,甚至改变像请求头和用户代理这些元数据的函数。  
# urllib.request是urllib的一个子模块,可以打开和处理一些复杂的网址
# decode(‘utf-8’)用来将页面转换成utf-8的编码格式,否则会出现乱码
# urllib.request.urlopen()方法实现了打开url, 并返回一个http.client.HTTPResponse对象, 通过http.client.HTTPResponse的read()
方法, 获得responsebody, 转码最后通过print()打印出来.

在这里插入图片描述
网页的源码在控制台打印出来了。

将信息爬取到本地

  • Beautiful Soup用法

上面通过urllib.request获得网页的html代码后,自然就是要将所需要的部分从杂乱的html代码中分离出来。既然要做数据的查找和提取,首先想到的应该是正则表达式的方式,而正则表达式书写的很复杂,而且Python中的正则表达式和其他语言中的并没有太大区别,所以现在使用Python中一种比较友好且易用的数据提取方式——Beautiful Soup

例:将简书首页的标题取出

在这里插入图片描述
所有的标题都在a标签里,并且class为title

find_all('a', 'title')
from urllib import request
from bs4 import BeautifulSoup
 
url = r'http://www.jianshu.com'
# 模拟真实浏览器进行访问
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
page = request.Request(url, headers=headers)
page_info = request.urlopen(page).read()
page_info = page_info.decode('utf-8')
 
# 将获取到的内容转换成BeautifulSoup格式,并将html.parser作为解析器
soup = BeautifulSoup(page_info, 'html.parser')  
 
# 以格式化的形式打印html
print(soup.prettify())
titles = soup.find_all('a', 'title')  # 查找所有a标签中class='title'的语句
# 打印查找到的每一个a标签的string
for title in titles:
    print(title.string)
  • txt文件操作

将爬取内容输出txt文件,python3 内置了读写文件的函数:open,以简书为例

from urllib import request
from bs4 import BeautifulSoup
 
url = r'http://www.jianshu.com'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
page = request.Request(url, headers=headers)
page_info = request.urlopen(page).read().decode('utf-8')
soup = BeautifulSoup(page_info, 'html.parser')
titles = soup.find_all('a', 'title')
 
try:
    # 在E盘以只写的方式打开/创建一个名为 titles 的txt文件
    file = open(r'E:\titles.txt', 'w')
    for title in titles:
    # 将爬去到的文章题目写入txt中
        file.write(title.string + '\n')
finally:
    if file:
        # 关闭文件(很重要)
        file.close()

open中mode参数的含义见下表:

符号含义
‘r’以只读模式打开文件(默认模式)
‘w’以只写的方式打开文件,如果文件存在的话会先删除再重新创建
‘x’以独占的方式打开文件,如果文件已经存在则错误
‘a’以写的形式打开文件,若文件已存在,则以追加的方式写入
‘b’二进制模式
‘t’文本模式(默认)
‘+’更新文件(读/写)

打开的文件,一定要关闭,所以最好使用try:…finally:…的形式,但是可能显示比较乱,所以可以使用python的with语句,自动调用close()而不需要我们写出来,可将上述的try,finally写成:

with open(r'E:\titles.txt','w') as file:
    for title in titles:
        file.write(title.string + '\n')
  • 图片的存储
    例:知乎话题:如何拍出不错的旅行风景照片?
    通过审查网页元素,查看图片链接的格式
    在这里插入图片描述
    图片包裹在img标签里,class样式为origin_image zh-lightbox-thumb,src路径为.jpg后缀结尾,可以使用Beautiful Soup结合正则表达式的方式来提取所有链接,提取出所有链接后,使用request.urlretrieve来将所有链接保存到本地。
import time
from urllib import request
from bs4 import BeautifulSoup
import re
 
url = r'https://www.zhihu.com/question/39655195/answer/171258697'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
page = request.Request(url, headers=headers)
page_info = request.urlopen(page).read().decode('utf-8')
soup = BeautifulSoup(page_info, 'html.parser')
 
# Beautiful Soup和正则表达式结合,提取出所有图片的链接(img标签中,class=**,以.jpg结尾的链接)
links = soup.find_all('img', "origin_image zh-lightbox-thumb",src=re.compile(r'.jpg$'))
# 设置保存的路径,否则会保存到程序当前路径
local_path = r'E:\pic'
 
for link in links:
    print(link.attrs['src'])
    # 保存链接并命名,time防止命名冲突 request.urlretrieve方法为远程下载数据
    request.urlretrieve(link.attrs['src'], local_path+r'\%s.jpg' % time.time())

在这里插入图片描述

  • 爬取简书首页文章的标题和文章链接
from urllib import request
from bs4 import BeautifulSoup
#Beautiful Soup是一个可以从HTML或XML文件中提取结构化数据的Python库
 
#构造头文件,模拟浏览器访问
url="http://www.jianshu.com"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
page = request.Request(url,headers=headers)
page_info = request.urlopen(page).read().decode('utf-8')#打开Url,获取HttpResponse返回对象并读取其ResposneBody
 
# 将获取到的内容转换成BeautifulSoup格式,并将html.parser作为解析器
soup = BeautifulSoup(page_info, 'html.parser')
# 以格式化的形式打印html
#print(soup.prettify())
 
titles = soup.find_all('a', 'title')# 查找所有a标签中class='title'的语句
 
''''' 
# 打印查找到的每一个a标签的string和文章链接 
    for title in titles: 
        print(title.string) 
        print("http://www.jianshu.com" + title.get('href'))    
'''
 
#open()是读写文件的函数,with语句会自动close()已打开文件
with open(r"E:\articles.txt","w") as file:       #在磁盘以只写的方式打开/创建一个名为 articles 的txt文件
    for title in titles:
        file.write(title.string+'\n')
        file.write("http://www.jianshu.com" + title.get('href')+'\n\n')

五、机器学习思路

一、工具:
1.pandas

  • 专业解释:基于NumPy
    的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
  • 个人理解:excel表格,是微软的office办公软件里的一个工具。而pandas就可以理解成是一个excel。两者的差别是excel是采取了可视化处理数据的一个工具,而pandas是用代码处理数据。专业点说就是用于操作行列数据,方便地实现各种数据分析的形式。

推荐查看:
(1) https://blog.csdn.net/GeekLeee/article/details/52808439
(2) https://www.yiibai.com/pandas/python_pandas_series.html
2.numpy

  • 专业解释:NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
  • 个人理解:可以辅助pandas处理数据,还可以用于数学计算。

推荐查看:
(1) https://blog.csdn.net/cxmscb/article/details/54583415
(2) https://www.yiibai.com/numpy/

3.scikit-learn
https://www.jianshu.com/p/516f009c0875
以上3个工具包具体api可以参考网上的一些资料。

二、数据清洗

三、特征工程
1.特征提取
小波分析、取差值、一阶差分、首尾均差、极差、最大值、最小值、绝对值、滑窗等
2.特征选择
统计学、卡方检验、T检验、F检验、随机森林算法
四、模型算法
KN、决策树、SVM支持向量机、随机森林、神经网络、Xgboost(回归树、随机森林、梯度提升)、
pickle(生成模型)
无监督学习、监督学习、半监督学习、强化学习、迁移学习、集成学习、回归、分类
五、附加规则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值