Python程序设计期末复习笔记

news2024/11/26 21:26:31

文章目录

  • 一、数据存储
    • 1.1 倒计时
    • 1.2 os库
    • 1.3 字符串操作
    • 1.4 文件操作
    • 1.5 列表操作
    • 1.6 元组
    • 1.7 字典
  • 二、文本处理及可视化
    • 2.1 jieba分词
    • 2.2 集合操作
    • 2.3 pdf文件读取
    • 2.4 参数传递
    • 2.5 变量作用域
  • 三、数据处理分析
    • 3.1 Sumpy
    • 3.2 Matplotlib
    • 3.3 Numpy
  • 四、Pandas
    • 4.1 索引操作
    • 4.2 统计函数
    • 4.3 数据清洗
    • 4.4 MISC
  • 五、分类与回归
    • 5.1 分类
    • 5.2 十折交叉验证
    • 5.3 回归
  • 六、聚类与降维
    • 6.1 processing
    • 6.2 聚类
    • 6.3 降维
    • 6.4 机器学习步骤
    • 6.5 图像
  • 七、Tensorflow
    • 7.1 评价指标-分类
    • 7.2 评价指标-回归
    • 7.3 激活函数
    • 7.4 使用Keras搭建神经网络

一、数据存储

1.1 倒计时

  • time.strftime(“%Y:%m:%d:%H:%M:%S”) 年月日时分秒

1.2 os库

方法含义
os.path.join(“C:\Windows”, “love.jpg”)生成c\Windows\love.jpg路径
os.rename(“D:\test1.txt”,“D:\test2.py”)将test1重命名为test2
os.mkdir(“C:\TEST”)在当前目录下创建文件夹TEST
os.rmdir(“C:\TEST”)删除当前目录下的TEST文件夹

1.3 字符串操作

s = ‘华东理工大学’

操作含义
s[-1]‘学’
s[0:2]‘华东’
s[0:6:2]‘华理大’
s.lower()、s.uppper()都转化为最小值,最大值
s.split(‘分隔符’)返回list
s.find(‘子串’)搜索成功返回下标,搜索不到返回-1
s.replace(‘理’,‘力’)华东力工大学
s.strip()去除两边的空格及特殊符号(\n)

1.4 文件操作

f = open(‘path’,‘r’), f.close() 或者直接使用 with open(‘path’,‘r’) as f:

操作含义
r
w写 与’a’不同,w会清空原文件
a追加 with open(‘2.txt’, ‘a’) as f: f.write(‘dfgddfgfg\n’)
read()读取全部内容
readline()读取文件第一行
readlines()读取文件的每一行返回列表 file = f.readlines() p = [x.strip() for x in file ]

1.5 列表操作

操作含义
sort(reverse=)reverse默认是False,默认从小到大排序
append(x)增加x到列表末尾
remove(x)移除第一次出现的x
count(x)x出现次数
extend(newlist)将newlist逐个append到原列表后
索引操作列表索引操作与字符串相同

1.6 元组

  • tuple()
  • 元组索引操作与字符串相同

1.7 字典

  • d = dict()
  • 键值对,键唯一且不可变:数字、字符串、元组
操作含义
d.keys()键列表
d.values()值列表
d.items()返回键-值 列表 借助lambda函数按值排序。 ①t = list(a.items()) ②t.sort(key=lambda x: x[1]) ③d = dict(t)
d.get(key, default)若key不存在返回default值,例如a = d.get(‘apple’,0)+1
d.update(a)将字典a中的键值对逐个放入字典d,类似列表的extend操作

二、文本处理及可视化

会从头到尾写一个词云图生成代码结合字典,文件读写操作,使用jieba分词,结合字符串操作,imageio.v2读取图片,WordCloud生成词云(counts), matplotlib来show图片

2.1 jieba分词

方法含义
jieba.add_word(‘newword’)添加新词
jieba.lcut(‘string’)精确模式
jieba.lcut(‘string’, cut_all=True)全模式
jieba.lcut_for_search(‘string’)搜索引擎模式

2.2 集合操作

集合:a、b set()

操作含义
a & b交集
ab
a - ba - a&b
a ^ ba
a < ba是否为b的真子集
a <= ba是否为b的子集
a == ba与b两个集合是否相同

2.3 pdf文件读取

import pdfplumber
pdf = pdfplumber.open('Attention.pdf')
pages = pdf.pages
pages[0].extract_text()

2.4 参数传递

传递方式含义
fun(2,3)位置传递
fun(b=3,a=2)关键字传递
fun(a, b=2), fun(7)默认值参数传递
fun(*number)元组类型变长
fun(**d)字典类型变长
f = lambda x : x**3labmda匿名函数 f(3) = 27

2.5 变量作用域

global 全局变量:在函数块中引用全局变量时需要先用global x 声明一下才能修改全局变量,否则只是修改局部变量

三、数据处理分析

3.1 Sumpy

创建符号变量 x,y=symbols(‘x y’) #x是符号变量名称,'x’是符号变量的值

opention例子
极限limit(sin(x)/x,x,0)
导数 z=sin(x)+x**2*exp(y)diff(z,y,1)
定积分integrate(sin(2*x),(x,0,pi))
求解代数方程组solve([x**2+y**2-1, x-y], [x, y])
级数求和k,n=symbols(‘k n’) ,summation(k**2,(k,1,n))
因式分解factor()

3.2 Matplotlib

必考,画图是重点,大概率结合subplot

plt.xlabel(‘Epoch’) 添加x轴名称
plt.xlim([0,8]) 指定x轴范围
plt.xticks([0,2,4,6,8]) 指定x刻度的数目与取值
plt.legend(loc=‘upper right’)

方法含义
plot(X, y, linestyle= , color=, marker= , label= )折线图
bar(name, value), 水平条形图:barh()垂直条形图
pie(x = value, explode= , labels= ,autopct= ‘%.1f%%’, shadow= True)饼图
sctter(name, value)散点图
hist(x=, bins= )直方图
boxplot()箱线图
figure(figsize=(w,h))指定图像大小
title图像标题
xlabel添加X轴标签,ylabel同理
xlim([0,8])指定X轴区间,ylim同理
xticks([0,2,4,6,8]指定X轴取值,yticks同理
legend(loc=‘upper right’)指定图label位置
subplot绘制子图
suptitle多个子图的大标题

常见的颜色字符:‘r’、‘g’、‘b’、‘y’、‘w’等
常见的线型字符:’-‘(直线)、’–‘(虚线)、’:‘(点线)等.
常用的描点标记:‘o’(圆圈)、‘s’(方块)、’^'(三角形)等

3.3 Numpy

方法含义
a = np.array([1,3,4,6])
np.linespace(0,10,100)#0~10 分成100份
np.arange(0,5,0.1)0~5,步长为0.1, 步长默认为1,起点默认为0
a.reshape(20,5)reshape
a.flatten()变为一维
np.random.randint(n= , size= )生成[0,n)之间的整数,n可以是一个数,size可以是一维也可以是二维
np.random.uniform(n= , size= )生成浮点数
np.loadtxt(“trade.csv”,delimiter=“,”)加载文件
np.savetxt(‘result.csv’)保存文件
np.zeros((a,b)), np.ones()生成指定格式0,1矩阵
np.identify(n)生成指定维度单位阵
a.astype(‘int’), ‘float’数据类型转化
a.transpose()转置
a.sum()求a数组总数的和
a.max()a所有元素中的最大值
np.dot(a, 2)a数组的每个元素都乘以2

四、Pandas

这章比较重要,会使用pands读取数据,数据清洗预处理,结合matplotlib,会画饼图、折线图等,会独立编写ppt里面的案例代码。

  • data = pd.read_csv(‘path’) 数据读取
  • Series pd.Series(data, index=[‘a’,‘b’,‘c’,‘d’,‘e’]) 生成pandas序列
  • DataFrame(data= , columns= , index= ) 数据、列名、索引

4.1 索引操作

  • 基于位置序号选取(大概率考与loc区别)
函数名含义
data.iloc[a,b]选取a行b列
data.iloc[list1, list2]选取多行多列,都是数字
data.iloc[a:b, c:d]选取ab-1行的cd-1列数据
  • 基于索引名选取
函数名含义
data[‘col’]选取col列
data[colList]选取多列
data.loc[index, ‘col’]选取index行, col列
data.loc[indexList, colList]选取多行多列

4.2 统计函数

函数名含义
data.describe()基本统计量及分位数
data.mean()取每一列的平均值
data.count()返回列个数
data.max(),data.min()按列取最大值
data.sum()取每一列的sum
data.head(n)取前几行,默认为5
data.tail(n)取后几行,默认为5
data.corr()相关系数 相关矩阵plt.matshow()
data.mode()众数

4.3 数据清洗

函数名含义
data.dropna()某行存在空值,删去改行
data.dropna(axis=1)某列存在空值,删除该列
data.dropna(how= ‘all’, thresh= n)how代表指定维度全空时才删除, thresh表示指定维度存在n个数时保留。
data.fillna(value= , method= )value是单个值时,所有的空值都用该值补充,value是字典时根据键对应列,空值对应值。method可以取, ffill, bfill
data.replace(value)value可以是两个值,也可以是字典
data.drop_duplicates取出重复数据
pd.concat([data1,data2],axis = )需要叠加的数据,axis=0按行追加,1按列
pd.merge()how,内连接、外连接,数据库的相关操作
data.sort_index(ascending= )按照索引号排序,默认下ascending为True,升序
data.sort_value(by = [collist])按照by指定列进行排序,默认是升序
所有数据操作要加inplace=True

4.4 MISC

  • 相关性

|r|<0.4 弱、 0.4<=|r|<0.7 中、 0.7<=|r| 高

  • Scatter-matrix 矩阵图
pd.plotting.scatter_matrix(data)
plt.show()
  • 数据选取
data.iloc[condition, colist]
data.loc[condition, colist]

五、分类与回归

会使用一种算法进行数据预处理,模型训练、预测、评估的代码。包括分类、回归、聚类

5.1 分类

算法引入包名名称
KNNfrom sklean.neighbors import KNeighborsClassifierK近邻
NBfrom sklearn.naive_bayes import GaussianNB贝叶斯
SVMfrom sklearn.svm import SVC支持向量机
DTfrom sklearn.tree import DecisionTreeClassifier决策树
Logistic Regressionfrom sklearn.linear_model import LogisticRegression逻辑回归

5.2 十折交叉验证

kfold = KFold(n_splits=10, shuffle=True, random_state=seed)
cv_results = cross_val_score(models[key], X, Y, cv=kfold)

5.3 回归

算法包名名称
LRfrom skelarn.linear_model import LinearRegression线性回归

六、聚类与降维

6.1 processing

方法名称含义例子
归一化(MinMaxScaler)转化为0~1之间mms = MinMaxScaler(); x_bin = mms.fit_transform(X)
标准化(StandardScaler) Z = x − μ σ Z = \frac{x-μ}{σ} Z=σxμ声明+转化
正则化(Normalizer)去除不同特征范围不同同上
二值化(LabelBinarizer)二值化同上

6.2 聚类

  • KMeans
from sklearn.cluster import KMeans
model = KMeans(n_clusters= )
...
model.labels_

6.3 降维

  • PCA
from sklearn.decomposition import PCA
pca = PCA(n_components= )
x = pca(X)

指定n_components为降维后的维度

  • 3D图
from mpl_toolkits.mplot3d import Axes3D

6.4 机器学习步骤

① 导入数据
② 数据概览
③ 数据可视化
④ 模型评估
⑤ 实施预测

6.5 图像

概念含义
二值图像0,1。1个二进制位
灰度图像0~255。8位无符号整数, convert(‘L’)
通道分割split
通道合并merge
轮廓提取filter

七、Tensorflow

会使用keras搭建序列网络、卷积网络。ppt的图像分类例子会独立编写。

7.1 评价指标-分类

名称含义计算公式
混淆矩阵预测结果与真是结果组成矩阵TP预测为正实际为正,TN预测为副实际为副,FN,预测为负实际为正,FP预测为正实际为负
精确率(metrics.precison_score)预测为正中实际为正比例 P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
召回率(recall_score)实际为正的样本中预测为正的样本 R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
F1-Score(f1_score) 2 ∗ P ∗ R P + R \frac{2*P*R}{P+R} P+R2PR
准确率(accuracy_score)预测正确的样本比例 T P + T N T P + T N + F P + F N \frac{TP+TN}{TP+TN+FP+FN} TP+TN+FP+FNTP+TN

7.2 评价指标-回归

名称含义计算公式
平均绝对误差(metrics.mean_absolute_error)MAE$\frac{1}{n} \sum\limits_{i=1}^{n} \lvert y_i - \hat y_i \rvert $
均方误差(mean_squared_error)MSE$\frac{1}{n} \sum\limits_{i=1}^{n}(y_i - \hat y_i)^2 $
决定系数(r2_score) R 2 R^2 R2 R 2 = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ i ) 2 R^2 = 1 - \frac{\sum\limits_{i=1}^{n}(y_i-\hat y_i)^2}{\sum\limits_{i=1}^{n}(y_i - \bar y_i)^2} R2=1i=1n(yiyˉi)2i=1n(yiy^i)2,其中 y ˉ = 1 n ∑ i = 1 n y i \bar y = \frac{1}{n} \sum\limits_{i=1}^{n}y_i yˉ=n1i=1nyi

7.3 激活函数

函数名表达式备注
Sigmoid f ( x ) = 1 1 + e − x f(x) = \frac{1}{1 + e^{-x}} f(x)=1+ex1值域0~1
tanh f ( x ) = e x − e − x e x + e − x f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} f(x)=ex+exexex值域-1~1
ReLU f ( x ) = m a x 0 , x f(x) = max{0,x} f(x)=max0,x值域>=0

7.4 使用Keras搭建神经网络

  • 步骤

载入数据、数据预处理、构建Sequntial模型,使用compile编译模型,使用fit函数训练模型、模型评估与预测

  • 序列
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(50, input_dim= 28*28, activation='relu', name='Hidden'),
    tf.keras.layers.Dense(10, activation='softmax', name='Output')
])

  • 卷积
model = tf.keras.models.Sequential([
    #卷积
    tf.keras.layers.Conv2D(32,(3,3), activation='relu', input_shape=(28,28,1)),
    #池化
    tf.keras.layers.MaxPooling2D((2,2)),
    #dropout
    tf.keras.layers.Dropout(rate=0.2),
    #全连接
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(50, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1146725.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法|动态规划 | 01背包问题No.1】AcWing 426. 开心的金明

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【AcWing算法提高学习专栏】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&a…

Java Dubbo 微服务框架 HP-SOA

HP-SOA 功能完备&#xff0c;简单易用&#xff0c;高度可扩展的Java微服务框架。 【快速开始】 技术架构 技术集成 Web服务框架&#xff1a;spring-boot 3.x微服务框架&#xff1a;Dubbo 3.x服务注册中心&#xff1a;Nacos配置中心&#xff1a;Nacos服务治理中心&#xff1…

色彩校正及OpenCV mcc模块介绍

一、术语 1.光&#xff1a;是电磁波&#xff0c;可见光是可被人眼感知的电磁波。可见光大约在400-700nm波段。光子携带的能量与波长成反比&#xff0c;400nm--700nm之间的单色光的颜色从紫色渐变成红色。 2.光谱&#xff1a;除了太阳光源外&#xff0c;LED灯、白炽灯等各种照明…

基于Java的汉服文化平台网站设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

python随手小练10(南农作业题)

题目1&#xff1a; 编写程序&#xff0c;输出1~1000之间所有能被4整除&#xff0c;但是不能被5整除的数 具体操作&#xff1a; for i in range(1,1000): #循环遍历1~999&#xff0c;因为range是左闭右开if (i % 4 0) and (i % 5 ! 0) :print(i) 结果展示&#xff1a; 题目2&…

Docker:安装MySQL

Docker&#xff1a;安装MySQL 1. 部署MySQL2.部署多个MySQL服务 1. 部署MySQL 首先需要安装Docker&#xff0c;安装Docker地址&#xff1a;http://t.csdnimg.cn/utPGF 安装命令&#xff1a; docker run -d \--name mysql \-p 3306:3306 \-e TZAsia/Shanghai \-e MYSQL_ROOT…

AMD Ryzen AI 暂仅支持 Windows,Linux 系统有望后续支持

近日消息&#xff0c;最新的 AMD Ryzen 7040 系列笔记本电脑配备了基于 Xilinx IP 的专用 AI 引擎&#xff0c;名为“Ryzen AI”&#xff0c;可以加速 PyTorch 和 TensorFlow 等机器学习框架的运行。不过目前这个 Ryzen AI 只支持微软 Windows 系统。但是如果有足够的客户需求&…

最新FL Studio 21.2中文版即将发布,2024年会有哪些新功能呢?

好消息&#xff01;FL Studio 21.2 在 10 月 26 日正式发布啦&#xff0c;它新增了 FL Cloud 在线采样库和 AI 音乐制作功能&#xff0c;还提供音乐分发到 Spotify、Apple Music 等主要音乐平台的服务。此外&#xff0c;还有新的音频分离功能、自定义波形颜色和新的合成器 Kepl…

SpringBoot 整合 Nacos 实现统一配置中心

目录 1. Nacos 功能 1.1 配置中心 2. SpringBoot 整合 Nacos 实现统一配置中心 2.1 Nacos 的部署安装 2.1.1 安装并启动 Nacos 2.1.2 开启Nacos控制台授权登录 2.1.3 将 Nacos 的数据源切换为 MySQL 2.2 实现配置中心 2.2.1 创建配置信息 2.2.2 SringBoot 使用配置中心…

雨云虚拟主机使用教程WordPress博客网站搭建教程

雨云虚拟主机(RVH)使用教程与宝塔面板搭建WordPress博客网站的教程&#xff0c;本文会讲解用宝塔面板一键部署以及手动安装两种方式来搭建WordPress博客&#xff0c;选其中一种方式即可。 WordPress WordPress是使用PHP语言开发的博客平台&#xff0c;用户可以在支持PHP和MyS…

mac文件夹无法写入 mac只能读取不能写入怎么解

mac用户在使用外接硬盘或U盘时&#xff0c;有时会遇到一个问题&#xff1a;mac文件夹无法写入&#xff08;只能读取不能写入&#xff09;&#xff0c;这种情况很让人头疼&#xff0c;因为无法对文件进行修改、删除或复制等操作。那么&#xff0c;mac文件夹无法写入的原因是什么…

基于Arduino的智能家居控制系统设计

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、系统总体设计方案本课题研究的内容&#xff08;一&#xff09;系统组成&#xff08;二&#xff09;硬件模块1.蓝…

python之拟合圆心及半径

目录 1、公式推导 2、代码实现 1、公式推导 2、代码实现 import matplotlib.pyplot as plt import numpy as np def Show_Fig(X,Y,x, y, r):theta np.arange(0, 2 * np.pi, 0.01)x x r * np.cos(theta)y y r * np.sin(theta)fig plt.figure()axes fig.add_subplot(111…

精讲双向链表的销毁

相信大家各位学习双向链表的时候对链表的销毁&#xff0c;都或多或少有些小疑惑&#xff0c;我到底是传一级指针还是传二级指针 木关系&#xff0c;这些都是小意思&#xff0c;今天我将为大家share 一下关于到底如何进行正确传指针 对于链表是销毁其实就是对链表进行一个结点一…

基于PHP的大学生考勤请假管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

Jupyter Notebook还有魔术命令?太好使了

在Jupyter Notebooks中&#xff0c;Magic commands&#xff08;以下简称魔术命令&#xff09;是一组便捷的功能&#xff0c;旨在解决数据分析中的一些常见问题&#xff0c;可以使用%lsmagic 命令查看所有可用的魔术命令 插播&#xff0c;更多文字总结指南实用工具科技前沿动态…

【赠书活动】从瀑布模式到水母模式:ChatGPT如何赋能软件研发全流程

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

yum源安装报错问题解决

如果出现以下错误 解决方案 CentOS 8 yum安装软件时&#xff0c;提示无法从AppStream下载 检查网通不通&#xff0c;然后确定DNS解析是否正确。 ping www.baidu.com有可能是所在网络环境在出口封了相应端口&#xff0c;需用其他方式&#xff0c;比如VPN解决。 我们无法使用C…

Element 多个Form表单 同时验证

一、背景 在一个页面中需要实现两个Form表单&#xff0c;并在页面提交时需要对两个Form表单进行校验&#xff0c;两个表单都校验成功时才能提交 所用技术栈&#xff1a;Vue2Element UI 二、实现效果 三、多个表单验证 注意项&#xff1a; 两个form表单&#xff0c;每个表单上…

tomcat9~10猫闪退个人经验

java版本17与8 8版本有jre&#xff0c;java17没有jre 所以在java8版本中将jre和jdk路径一同添加环境是不会出现闪退的&#xff0c;tomcat9没有闪退 但是在10就闪退了&#xff0c;因为java版本太低 java17没有jre&#xff0c;但是可以通过一种方法添加jre到java17的目录 完…