Python程序设计期末复习笔记

文章目录

  • 一、数据存储
    • 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

方法含义
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 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \frac{1}{n}\sum\limits_{i=1}^{n} \lvert y_i - \hat y_i \rvert n1i=1nyiy^i
均方误差(mean_squared_error)MSE 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \frac{1}{n} \sum\limits_{i=1}^{n}(y_i - \hat y_i)^2 n1i=1n(yiy^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)),#dropouttf.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.mzph.cn/news/123989.shtml

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

相关文章

技术视角下的跑腿小程序开发:关键挑战和解决方案

跑腿小程序作为连接服务提供者和用户的桥梁&#xff0c;面临着诸多技术挑战。本文将聚焦于技术层面的关键挑战&#xff0c;并提供解决方案&#xff0c;以帮助开发者应对技术上的复杂问题。 1. 实时性与性能挑战 挑战&#xff1a; 跑腿小程序需要实时地匹配订单、更新状态和提…

40基于MATLAB,使用模板匹配法实现车牌的识别。

基于MATLAB&#xff0c;使用模板匹配法实现车牌的识别。具体包括将原图灰度化&#xff0c;边缘检测&#xff0c;腐蚀操作&#xff0c;车牌区域定位&#xff0c;车牌区域矫正&#xff0c;二值化&#xff0c;均值滤波&#xff0c;切割&#xff0c;字符匹配&#xff0c;最终显示车…

小程序request请求封装

以上为本人的项目目录 1.首先在utils中创建request.js文件封装request请求&#xff0c;此封装带上了token&#xff0c;每次请求都会自带token&#xff0c;需要你从后端获取后利用wx.setStorageSync(token,返回的token),不使用的话就是空。 直接复制即可&#xff0c;需要改一下…

(三)库存超卖案例实战——使用redis分布式锁解决“超卖”问题

前言 在上一节内容中我们介绍了如何使用mysql数据库的传统锁&#xff08;行锁、乐观锁、悲观锁&#xff09;来解决并发访问导致的“超卖问题”。虽然mysql的传统锁能够很好的解决并发访问的问题&#xff0c;但是从性能上来讲&#xff0c;mysql的表现似乎并不那么优秀&#xff…

vue3后台管理系统之跨域代理

vite.config.js中 server: {port: 5002,host: true, //0.0.0.0open: false,strictPort: true,proxy: {// 请求前缀/api&#xff0c;只有加了/api前缀的请求才会走代理(前端自定义)/api: {target: http://127.0.0.1:8000,// 获取服务器地址的设置changeOrigin: true,// 路径重写…

AMD HIP并行编程语言及其矢量相加实例——一文带你快速入门

✍️写在前面&#xff1a;随着计算的应用场景变得日益复杂多样&#xff0c;为了跟上人工智能算法对算力的需求&#xff0c;GPU硬件架构快速走向多样化&#xff0c;GPU生产厂家众多&#xff0c;且在商业和市场等因素的影响下&#xff0c;GPU通用计算编程模型也日益多元化。因此&…

Gateway一个诡异问题处理过程

一、前言 我们搭好了网关和一个基础微服务&#xff08;含用户体系、门店服务、商品服务、客户服务&#xff09;&#xff0c;然后用APIfox测试过程中发现通过网关入口请求某些接口&#xff0c;一段时间后返回错误&#xff0c;查看系统日志发现除了报There is no session with i…

流程封装与基于加密接口的测试用例设计

接口测试仅仅掌握 Requests 或者其他一些功能强大的库的用法&#xff0c;是远远不够的&#xff0c;还需要具备能根据公司的业务流程以及需求去定制化一个接口自动化测试框架的能力。所以&#xff0c;接下来&#xff0c;我们主要介绍下接口测试用例分析以及通用的流程封装是如何…

并发编程 -常用并发设计模式

1. 优雅终止线程的设计模式 思考&#xff1a;在一个线程 T1 中如何优雅的终止线程 T2&#xff1f; 错误思路1&#xff1a;使用线程对象的 stop() 方法停止线程 stop 方法会真正杀死线程&#xff0c;如果这时线程锁住了共享资源&#xff0c;那么当它被杀死后就再也没有机会释 …

postgresql的windows

1. 资源下载&#xff1a; https://www.postgresql.org/download/windows/ 2. 安装 双击&#xff0c;指定D盘目录&#xff0c;接下来默认安装&#xff0c;一直到出现下面的最后一步。一定要去除勾选复选框。 在最后&#xff0c;点击FINISH。 3. 初始化 4. 检查和修改配置 1&am…

数据结构:优先级队列(堆)

概念 优先级队列是啥&#xff1f; 队列是一种先进先出 (FIFO) 的数据结构 &#xff0c;但有些情况下&#xff0c; 操作的数据可能带有优先级&#xff0c;一般出队 列时&#xff0c;可能需要优先级高的元素先出队列。 在这种情况下&#xff0c; 数据结构应该提供两个最基本的…

converted from warning

converted from warning 关注微信&#xff1a;生信小博士 本地或者其它服务器跑同样的代码是正常的&#xff0c;只是有警告&#xff0c;但是在西柚云服务器上面运行会报错&#xff1f; 这是由于您两个环境使用的包版本不一样导致的&#xff0c;有如下解决方法 或者之前只是告警…

Jetpack Compose | State状态管理及界面刷新

我们知道Jetpack Compose&#xff08;以下简称Compose&#xff09;中的 UI 可组合项是通过Composable 声明的函数来描述的&#xff0c;如&#xff1a; Composable fun Greeting() {Text(text "init",color Color.Red,modifier Modifier.fillMaxWidth()) }上面的代…

MySQL实战1

文章目录 主要内容一.墨西哥和美国第三高峰1.准备工作代码如下&#xff08;示例&#xff09;: 2.目标3.实现代码如下&#xff08;示例&#xff09;: 4.相似例子代码如下&#xff08;示例&#xff09;: 二.用latest_event查找当前打开的页数1.准备工作代码如下&#xff08;示例&…

C++设计模式_20_Composite 组合模式

Composite 组合模式和后面谈到的Iterator&#xff0c;Chain of Resposibility都属于“数据结构”模式。Composite 组合模式核心是通过多态的递归调用解耦内部和外部的依赖关系。 文章目录 1. “数据结构”模式1.1 典型模式 2. 动机( Motivation )3. 模式定义4. Composite 组合模…

科普|电源自动测试系统测试的项目都有哪些?

电源自动测试系统是一种用于电源性能自动测试的集成系统&#xff0c;它可以自动检测电源模块或开关电源的输入、输出、保护等各个方面。该系统通常由数据软件和各类硬件测试仪器共同组成&#xff0c;利用通讯总线、测试夹具以及其它线缆等将仪器进行连接组成整体的系统结构&…

day14_集合

今日内容 零、 复习昨日 一、集合框架体系 二、Collection 三、泛型 四、迭代 五、List(ArrayList、LinkedList) 零、 复习 throw和throws什么区别 throwthrows位置方法里面方法签名上怎么写throw 异常对象throws异常类名(多个)作用真正抛出异常对象声明抛出的异常类型 运行时…

成本预算管理系统

成本预算管理系统 功能介绍&#xff1a; 一 基本信息&#xff1a; 1、产品设置&#xff1a;产品的长、宽、高及面积计算公式的设置。 2、板材设置&#xff1a;板材类别、厚度、尺寸的设置 3、系统名称&#xff1a;风管系统的类别设置 4、公司信息&#xff1a;本公司的信息…

【多线程】线程互斥 {竞态条件,互斥锁的基本用法,pthread_mutex系列函数,互斥锁的原理;死锁;可重入函数和线程安全}

一、进程线程间通信的相关概念 临界资源&#xff1a;多线程执行流共享的资源就叫做临界资源。确切的说&#xff0c;临界资源在同一时刻只能被一个执行流访问。临界区&#xff1a;每个线程内部&#xff0c;访问临界资源的代码&#xff0c;就叫做临界区。互斥&#xff1a;通过互…

基于鸟群算法的无人机航迹规划-附代码

基于鸟群算法的无人机航迹规划 文章目录 基于鸟群算法的无人机航迹规划1.鸟群搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用鸟群算法来优化无人机航迹规划。 1.鸟群搜索算法 …