【Python】学习笔记总结(第二阶段(7-9)——汇总篇)
文章目录
- 七、Python简单爬虫
- 1.重要知识与技能
- 2.使用re表达式抓取网页文件
- 3.使用requests抓取网页
- 4.使用re正则表达式提取数据
- 5.使用xPath工具提取数据
- 6.使用BeautifulSoup工具
- 八、Python经典算法
- 0.Python画图
- 1.回归-线性回归
- 2.分类-k最近邻
- 3.聚类
- 3.1.Kmeans(k均值聚类算法)
- 3.2.DBSCAN(基于密度的聚类算法)
- 3.3.层次聚类算法
- 4.降维
- 4.1.PCA算法
- 4.2.FA算法
- 5.学习(神经网络)
- 5.1.BP神经网络
- 6.推荐算法
- 7.时间序列(视频学习)
- 九、数据库与Python交互
- 1.连接MYSQL数据库
- 1.1.创建表
- 1.2.插入数据
- 1.3.查询数据
- 1.4.更新数据
- 1.5.删除数据
- 1.6.执行事务
- 1.7.读取数据库表数据并写入excel
- 1.8.读取excel数据并写入数据库表
- 2.Python人机交互(Tkinter图形界面开发)
- 2.1.创建root窗口
- 2.2.控件布局
- 2.3.实现commend
- 2.4.简单测试案例
七、Python简单爬虫
1.重要知识与技能
重要知识与技能:
- 使用HTML与CSS制作网页文件
- 使用re正则表达式抓取网页文件
- 使用requests获取网站内容
- 使用re正则表达式提取数据
- 使用xPath工具提取数据
- 使用BeautifulSoup工具
2.使用re表达式抓取网页文件
import re
myFile = open('Index.html','r',encoding='UTF-8')
myContent = myFile.read()
myFile.close()
#myPatten = "<li>(.*)</li>"
myPatten2 = "([a-zA-Z0-9_\.-]+@[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)+)"
mylist = re.findall(myPatten2,myContent)
print(mylist)
3.使用requests抓取网页
import requests
myURL = 'https://www.3dmgame.com'
myContent = requests.get(myURL).content.decode('UTF-8')
4.使用re正则表达式提取数据
def Get3DMNews_WithRE():'''得到3DM网站的新闻内容:return: 获取的新闻内容'''import requestsimport remyURL = 'https://www.3dmgame.com'myContent = requests.get(myURL).content.decode('UTF-8')myPartten = '<a href="(.*)" target="_blank" >(.*)</a>\n <span>(.*)</span>'myList = re.findall(myPartten,myContent)for item in myList :myNews = {}myNews['title'] = item[0]myNews['herf'] = item[1]myNews['time'] = item[2]print(myNews)passpass
5.使用xPath工具提取数据
def Get3DMNews_WithXPATH():'''得到3DM网站的新闻内容:return: 获取的新闻内容'''import requestsfrom lxml import htmlmyURL = 'https://www.3dmgame.com'myContent = requests.get(myURL).content.decode('UTF-8')etree = html.etreeeTreeHtml = etree.HTML(myContent)myList = eTreeHtml.xpath("//li")for item in myList :myNews = {}myNews['title'] = item.xpath('./a')[0].textmyNews['herf'] = item.xpath('./a/@href')[0]myNews['time'] = item.xpath('./span')[0].textprint(myNews)passpass
6.使用BeautifulSoup工具
def Get3DMNews_WithBeautifulSoup():'''得到3DM网站的新闻内容:return: 获取的新闻内容'''import requestsfrom bs4 import BeautifulSoupmyURL = 'https://www.3dmgame.com'myContent = requests.get(myURL).content.decode('UTF-8')bsHtml = BeautifulSoup(myContent,'html5lib')myList = bsHtml.find_all('div')[10].find_all('div')[8].find_all('div')[91].find_all('li')for item in myList :myNews = {}myNews['title'] = item.find('a').get_text()myNews['herf'] = item.find('a').get('href')myNews['time'] = item.find('span').get_text()print(myNews)passpass
八、Python经典算法
0.Python画图
Python画图
1.回归-线性回归
回归-课程回顾
目的:找一条线,尽可能地拟合数据点,生成线性回归模型,并进行预测
解决什么样的问题:要完成的任务是预测一个连续值的话,那这个任务就是回归。是离散值的话就是分类
拟合(Fitting):就是说这个曲线能不能很好的描述某些样本,并且有比较好的泛化能力。
过拟合(Overfitting):就是太过贴近于训练数据的特征了,在训练集上表现非常优秀,近乎完美的预测/区分了所有的数据,但是在新的测试集上却表现平平,不具泛化性,拿到新样本后没有办法去准确的判断。
欠拟合(UnderFitting):测试样本的特性没有学到,或者是模型过于简单无法拟合或区分样本。
过拟合和欠拟合的形象解释
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(1,10,1)
y = 0.9 * t + np.sin(t)
# plt.plot(t,y,"o")
# plt.show()
model = np.polyfit(t,y,deg = 3)#生成三阶模型
t2 = np.arange(-2,12,0.5)
y2predict = np.polyval(model,t2)
plt.plot(t,y,"o",t2,y2predict,"x")
plt.show()
2.分类-k最近邻
分类-课程回顾
目的:根据已知样本进行分类学习,生成模型,并对测试样本进行预测
解决什么样的问题:了解单个样本信息特征以及其标签值,根据其生成模型,并对测试样本进行预测
#分类算法
#k最近邻:近朱者赤近墨者黑原理
import os
import pandas as pd
from sklearn import neighbors
thisFilePath = os.path.abspath('.')
os.chdir(thisFilePath)
# print(os.getcwd())
df = pd.read_csv('ScoreData.csv')
# print(df.head())train_x = df.iloc[0:8,2:4]
# print(train_x.head())
train_y= df.iloc[0:8,4]
# print(train_y.head())model = neighbors.KNeighborsClassifier()
model.fit(train_x,train_y)
test_x = df.iloc[8:11,2:4]
test_y= df.iloc[8:11,4].valuestest_p = model.predict(test_x)
print(test_p)
print(test_y)print(model.score(test_x, test_y))
3.聚类
聚类-课程回顾
目的:根据已知样本进行分类学习,生成模型,并对测试样本进行预测
解决什么样的问题:不了解单个样本信息特征以及其标签值,根据其生成模型,并对测试样本进行预测
3.1.Kmeans(k均值聚类算法)
(k-means clustering algorithm)
import numpy as np
train_x2 = np.array(train_x[['yuwen','shuxue']])
print(train_x2)
from sklearn.cluster import KMeans
model2 = KMeans(n_clusters=3)
model2 = model2.fit(train_x2)
clusterResult = pd.DataFrame(model2.labels_,index=train_x.index,columns=['clusterResult'])
print(clusterResult.head())
3.2.DBSCAN(基于密度的聚类算法)
(Density-Based Spatial Clustering of Applications with Noise)
3.3.层次聚类算法
一篇
二篇
三篇
4.降维
降维-课程回顾
目的:某种映射方法,将原高维空间中的数据点映射到低维度的空间中
解决什么样的问题:通过映射将数据降维后进行分类,案例征友考量,案例文科指数,理科指数(可以使用因子分析得到与原数据相关系数)
4.1.PCA算法
4.2.FA算法
5.学习(神经网络)
学习-课程回顾
目的:某种映射方法,将原高维空间中的数据点映射到低维度的空间中
解决什么样的问题:案例图像识别
5.1.BP神经网络
6.推荐算法
推荐-课程回顾
目的:利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西
解决什么样的问题:案例推荐
7.时间序列(视频学习)
时间序列-课程回顾
目的:根据已有的历史数据对未来进行预测
解决什么样的问题:案例股票
ADF检验
差分
ADF检验
反差分
引用自 https://www.runoob.com/python3/python3-mysql.html
九、数据库与Python交互
1.连接MYSQL数据库
1.1.创建表
import pymysql
# 打开数据库连接
db = pymysql.connect("数据库IP地址","用户名","密码","数据库" )# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")# 使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE (FIRST_NAME CHAR(20) NOT NULL,LAST_NAME CHAR(20),AGE INT, SEX CHAR(1),INCOME FLOAT )"""cursor.execute(sql)# 关闭数据库连接
db.close()
1.2.插入数据
import pymysql# 打开数据库连接
db = pymysql.connect("数据库IP地址","用户名","密码","数据库" )# 使用cursor()方法获取操作游标
cursor = db.cursor()# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME)VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
# SQL 插入语句2
sql2 = "INSERT INTO EMPLOYEE(FIRST_NAME, \LAST_NAME, AGE, SEX, INCOME) \VALUES ('%s', '%s', %s, '%s', %s)" % \('Mac', 'Mohan', 20, 'M', 2000)
try:# 执行sql语句cursor.execute(sql)# 提交到数据库执行db.commit()
except:# 如果发生错误则回滚db.rollback()# 关闭数据库连接
db.close()
1.3.查询数据
import pymysql# 打开数据库连接
db = pymysql.connect("数据库IP地址","用户名","密码","数据库" )# 使用cursor()方法获取操作游标
cursor = db.cursor()# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \WHERE INCOME > %s" % (1000)
try:# 执行SQL语句cursor.execute(sql)# 获取所有记录列表results = cursor.fetchall()for row in results:fname = row[0]lname = row[1]age = row[2]sex = row[3]income = row[4]# 打印结果print ("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \(fname, lname, age, sex, income ))
except:print ("Error: unable to fetch data")# 关闭数据库连接
db.close()
1.4.更新数据
import pymysql# 打开数据库连接
db = pymysql.connect("数据库IP地址","用户名","密码","数据库" )# 使用cursor()方法获取操作游标
cursor = db.cursor()# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
try:# 执行SQL语句cursor.execute(sql)# 提交到数据库执行db.commit()
except:# 发生错误时回滚db.rollback()# 关闭数据库连接
db.close()
1.5.删除数据
import pymysql# 打开数据库连接
db = pymysql.connect("数据库IP地址","用户名","密码","数据库" )# 使用cursor()方法获取操作游标
cursor = db.cursor()# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:# 执行SQL语句cursor.execute(sql)# 提交修改db.commit()
except:# 发生错误时回滚db.rollback()# 关闭连接
db.close()
1.6.执行事务
# SQL删除记录语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:# 执行SQL语句cursor.execute(sql)# 向数据库提交db.commit()
except:# 发生错误时回滚db.rollback()
1.7.读取数据库表数据并写入excel
import pymysql,xlwtdef export_excel(table_name):conn = pymysql.connect("数据库IP地址","用户名","密码","数据库" )cur = conn.cursor()sql = 'select * from %s;' %table_name#读取数据cur.execute(sql)fileds = [filed[0] for filed in cur.description]#所有数据all_date = cur.fetchall() for result in all_date:print(result)#写excelbook = xlwt.Workbook() #创建一个booksheet = book.add_sheet('result') #创建一个sheet表for col,filed in enumerate(fileds):sheet.write(0,col,filed)#从第一行开始写row = 1for data in all_date:for col,filed in enumerate(data):sheet.write(row,col,filed)row += 1book.save('%s.xls' %table_name)passexport_excel('stocks')
1.8.读取excel数据并写入数据库表
import pymysql
import xlrd
conn = pymysql.connect("数据库IP地址","用户名","密码","数据库" )
cursor = conn .cursor()#读取excel数据写入数据库
book = xlrd.open_workbook("students.xls")
sheet = book.sheet_by_name('Sheet1')
query = 'insert into student_tbl (name, sex, minzu, danwei_zhiwu, phone_number, home_number) values (%s, %s, %s, %s, %s, %s)'
for r in range(1, sheet.nrows):name = sheet.cell(r,0).valuesex = sheet.cell(r,1).valueminzu = sheet.cell(r,2).valuedanwei_zhiwu = sheet.cell(r,3).valuephone_number = sheet.cell(r,4).valuehome_number = sheet.cell(r,5).valuevalues = (name, sex, minzu, danwei_zhiwu, phone_number, home_number)# 执行sql语句# 往SQL添加一条数据cursor.execute(query , values)
print(values)
cursor.close()
db.commit()
db.close()
2.Python人机交互(Tkinter图形界面开发)
2.1.创建root窗口
#导入Tkinter包全部内容
from tkinter import *
#Tkinter根窗口实例化
root = Tk()
#设置窗口标题
root.title("my_Title")
2.2.控件布局
#设置label控件
label1 = Label(root,text = 'Number:')
label1.grid(row = 0, column = 0)
#设置text控件
text1 = Text(root,width = 30 , height = 1)
text1.grid(row = 1, column = 0)
2.3.实现commend
#设置调用函数
def myCalculate():a = int(text1.get("1.0",END))#从头开始取到结尾sum = a * 3text2.delete('1.0',END)text2.insert(INSERT,sum)pass
#设置Button
button = Button(root,text="click sum",command = myCalculate)
button.grid(row = 4, column = 0)
2.4.简单测试案例
#导入Tkinter包全部内容
from tkinter import *
#Tkinter根窗口实例化
root = Tk()
#设置窗口标题
root.title("my_Title")
#设置label控件
label1 = Label(root,text = 'Number:')
label1.grid(row = 0, column = 0)
#设置text控件
text1 = Text(root,width = 30 , height = 1)
text1.grid(row = 1, column = 0)
#设置label控件
label2 = Label(root,text = 'Sum:')
label2.grid(row = 2, column = 0)
#设置text控件
text2 = Text(root,width = 30 , height = 1)
text2.grid(row = 3, column = 0)
#设置调用函数
def myCalculate():a = int(text1.get("1.0",END))#从头开始取到结尾sum = a * 3text2.delete('1.0',END)text2.insert(INSERT,sum)pass
#设置Button
button = Button(root,text="click sum",command = myCalculate)
button.grid(row = 4, column = 0)mainloop()
【Python】学习笔记总结(第二阶段(7-9)——汇总篇)相关推荐
- Python学习笔记(基础知识第三篇:列表、元组、字典、集合)
一.列表 1.列表知识 定义一个空的列表,列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套). 打印出第一个元素,列表索引值以0为开始值,-1为从末尾的开始位置. 列表可以使用 ...
- 【Python学习笔记】猜颜色小游戏
[Python学习笔记]猜颜色小游戏 前言 一.算法原理 1. 生成器部分 2. 检测器部分 二.代码 过程BUG汇总笔记 总结 前言 最近馋世界游戏大全51,心血来潮用Python写了个猜颜色,顺便 ...
- [python教程入门学习]python学习笔记(CMD执行文件并传入参数)
本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...
- python学习笔记之编写readConfig读写配置文件
python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客
- Python学习笔记(十一)
Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...
- Python学习笔记一简介及安装配置
Python学习笔记一 参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e54 ...
- python学习笔记目录
人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...
- Python学习笔记(二):标准流与重定向
Python学习笔记(二):标准流与重定向 - SamWei - 博客园 Python学习笔记(二):标准流与重定向 Posted on 2012-02-19 22:36 SamWei 阅读(176) ...
- python 学习笔记 12 -- 写一个脚本获取城市天气信息
近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...
- python基本语法语句-python学习笔记:基本语法
原标题:python学习笔记:基本语法 缩进:必须使用4个空格来表示每级缩进,支持Tab字符 if语句,经常与else, elif(相当于else if) 配合使用. for语句,迭代器,依次处理迭代 ...
最新文章
- leetcode--字符串转换为整数--python
- 过滤流的主要特点是什么_高效过滤器工艺流程是什么 高效过滤器特点介绍【详解】...
- fiddler自动响应AutoResponder之正则匹配Rule Editor
- stm32中如何进行printf重定向用于串口调试输出
- Google App Engine平台下JDOQL查询报异常的问题解决方案
- webpack的build的时候时间长处理方案
- 1/1!-1/3!+1/5!-……
- 基于java的网上花店销售系统_基于web的花店销售系统的设计与实现
- ERP项目需要持续的呵护
- ASP.NET删除等操作前的提示解决方案
- 【OpenCV教程】第一章 Mac上的安装和初步使用
- 2023CAEE安规测试与环境试验技术设备展览会
- 【f1c200s/f1c100s】屏幕背光驱动适配
- python输入两个数字的成语_Python语言学习之20个值得学习的Python技巧
- admi后台 vue_vue-ele-admin后台管理系统框架__布局
- mysql锁机制和索引_MySql锁机制及索引 · 十年饮冰,难凉热血
- OKK集中生产加工中心(MC)的主要部品
- 玩VR眼镜对眼睛有影响和危害吗?2018VR眼镜排行榜,什么VR眼镜好推荐,哪个VR眼镜好?
- 第1章 Linux系统的发展 (一)
- 仿写哔哩哔哩的头部导航部分(HTML+CSS静态)
热门文章
- 最终篇!AAAI 2022值得读的NLP论文盘点
- 阿里广告技术最新突破:全链路联动-面向最终目标的全链路一致性建模
- 使用PaddleFluid和TensorFlow实现图像分类网络SE_ResNeXt | 文末超大福利
- 基线系统需要受到更多关注:基于词向量的简单模型 | ACL 2018论文解读
- 关于大家对Swin Transformer的魔改论文模型记录(只关注Swin是如何使用的)
- vba fso读utf 文本_利用FSO对象操作文件
- v3s 全志_基于全志V3s的开源开发板,提供pcb和系统源码和资料
- 很好的阻止了事件的发生_请定好您的闹钟,八月,夜空中将发生这13件超酷的天文事件...
- docker部署rocketmq
- centos 上传jar 命令_centos上快速将一个jar使用docker部署启动