首页 > 编程语言 >Python程序设计期末复习笔记

Python程序设计期末复习笔记

时间:2023-12-01 15:32:01浏览次数:35  
标签:复习 keras Python 含义 tf 操作 np 程序设计 data



文章目录

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

交集

a

b

a - b

a - a&b

a ^ b

a

a < b

a是否为b的真子集

a <= b

a是否为b的子集

a == b

a与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**3

labmda匿名函数 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

np.diag(a)

生成一个对角矩阵,元素都是a

四、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 分类

算法

引入包名

名称

KNN

from sklean.neighbors import KNeighborsClassifier

K近邻

NB

from sklearn.naive_bayes import GaussianNB

贝叶斯

SVM

from sklearn.svm import SVC

支持向量机

DT

from sklearn.tree import DecisionTreeClassifier

决策树

Logistic Regression

from 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 回归

算法

包名

名称

LR

from skelarn.linear_model import LinearRegression

线性回归

六、聚类与降维

6.1 processing

方法名称

含义

例子

归一化(MinMaxScaler)

转化为0~1之间

mms = MinMaxScaler(); x_bin = mms.fit_transform(X)

标准化(StandardScaler)

声明+转化

正则化(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)

预测为正中实际为正比例

召回率(recall_score)

实际为正的样本中预测为正的样本

F1-Score(f1_score)

准确率(accuracy_score)

预测正确的样本比例

7.2 评价指标-回归

名称

含义

计算公式

平均绝对误差(metrics.mean_absolute_error)

MAE

均方误差(mean_squared_error)

MSE

决定系数(r2_score)

,其中

7.3 激活函数

函数名

表达式

备注

Sigmoid

值域0~1

tanh

值域-1~1

ReLU

值域>=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')
])

Python程序设计期末复习笔记_笔记_14


标签:复习,keras,Python,含义,tf,操作,np,程序设计,data
From: https://blog.51cto.com/u_14597003/8647801

相关文章

  • 复习:Java基础-泛型方法
    泛型大家都很熟悉了泛型方法呢可能很多小伙伴都有混淆,今天来稍微复习一下泛型方法(普通方法)publicclassTest<T>{publicTf(Tc){//注意声明,使此方法成为泛型方法returnc;}}泛型方法(静态方法)这么写编译就通过不了错误写法publicclassTe......
  • Advent of Code 2023题解 [Mathematica/Python]
    Day1Part1(*读取文件*)lines=ReadList["E:\\ExplorerDownload\input.txt",String];(*计算校准值*)calibrationValues=ToExpression[StringJoin[#[[1]],#[[-1]]]]&/@(StringCases[#,DigitCharacter]&/@lines);(*打印总和*)Pri......
  • python5
    数据容器入门数据容器:一种可以容纳多份的数据类型,每一份数据称为元素,分五类: 1.列表list2.元组tuple3.字符串str4.集合set5.字典dict 一.列表语法列表【下标】即可取出#基本语法【元素1,元素2,元素3~~~】#定义变量 变量名称=【元素1,元素2,元素3~~~......
  • Python接口自动化项目----Anan
    优点本效果展示仅是整体样式功能,更详细的使用方法和优点,需要参考使用手册。整体的优点包括:1.测试接口的统一管理2.支持多环境3.测试报告展示4.定时任务5.支持代码驱动6.便捷的交互式页面7.支持根据业务的定制化操作8.基于httprunner1.x,支持各种复杂情况下的接口测试,多依......
  • 九章算法Twitter 后端系统 - Python 项目实战2023
    获取完整版--》请留言VisualStudioCodeVisualStudioCode(简称VSCode)是一个免费的跨平台文本编辑器,由微软开发和维护。虽然它被称为文本编辑器,但它实际上是一个功能强大的集成开发环境(IDE),支持多种编程语言,如Python、JavaScript、C++等。以下是VSCode的一些主要特点:轻量级:VSCo......
  • Python使用cURL库下载文件
    Python使用cURL库下载文件cURL库是一个功能强大的工具,可以用于在Python中下载文件。以下是一个简单的Python程序,使用cURL库实现文件下载功能:importsubprocessdefdownload_file(url,output_path):command=['curl','-o',output_path,url]process=subprocess.Popen(comman......
  • Python爬虫异步与缓存技巧浅析
    Python爬虫异步与缓存技巧浅析在Python爬虫中,异步和缓存是两个非常重要的概念。异步可以显著提高爬虫的效率,而缓存则可以帮助我们避免重复抓取网页,节省时间和资源。一、异步爬虫Python的异步爬虫通常使用asyncio库来实现。这个库提供了异步I/O、事件循环、协程和任务等功能。下面是......
  • Python爬虫完整代码模版——获取网页数据的艺术
    Python爬虫完整代码模版——获取网页数据的艺术在当今数字化世界中,数据是价值的源泉。如何从海量数据中提取所需信息,是每个数据科学家和开发者必须面对的问题。Python爬虫作为一种自动化工具,专门用于从网站上抓取数据。本文将提供一个Python爬虫的完整代码模板,并配以插图,帮助读者理......
  • Python制作排班小工具【二】
    一、背景在上一篇文章中(Python制作排班小工具【一】),已经编写了小工具的排班逻辑,本篇文章将实现小工具的GUI界面。那么先粗略画一张UI示意图,GUI界面代码就按照这张图来编写:二、代码实现使用ttkbootstrap:1.创建“生成排班”和“查看记录”两个Notebook2.将Label标签,Entry输入框,Button......
  • 无涯教程-Python - 单词标记化
    单词标签化是将大量文本样本拆分为单词的过程,这是自然语言处理任务的要求,其中每个单词都需要捕获并接受以便进一步分析,如对特定情感进行分类和计数等,自然语言工具包(NLTK)是用于实现此目的的库,在继续进行python之前安装NLTK单词标签化程序。condainstall-canacondanltk接......