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.hqwc.cn/news/154616.html

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

相关文章

Qwt QwtScaleDraw自定义坐标轴

1.概述 QwtScaleDraw 是 Qt 绘图库 Qwt 中的一个类&#xff0c;用于绘制坐标轴刻度线和刻度标签。它提供了一些方法和属性来设置刻度线和标签的样式、布局和对齐方式。 以下是类继承关系&#xff1a; 2.常用方法 标签相关方法&#xff1a; setLabelRotation(double angle)&…

开源库存管理系统InvenTree的安装

本文是应网友 shijie880500 要求折腾的&#xff1b; 什么是 InvenTree &#xff1f; InvenTree 是一个开源的库存管理系统&#xff0c;提供强大的低级别库存控制和零件跟踪。InvenTree 系统的核心是 Python/Django 数据库后端&#xff0c;它提供了一个管理界面&#xff08;基于…

将字符串中符合规则的元素替换为指定元素 re.sub()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将字符串中符合规则的元素 替换为指定元素 re.sub() 选择题 请问re.sub(r[0-9],*,s)的结果是&#xff1a; import re s "hello123" print("【显示】s ",s) print(&quo…

前端包管理工具详解

一、npm包管理工具 1.代码共享方案 我们已经学习了在JavaScript中可以通过模块化的方式将代码划分成一个个小的结构&#xff1a; 在以后的开发中我们就可以通过模块化的方式来封装自己的代码&#xff0c;并且封装成一个工具&#xff1b;这个工具我们可以让同事通过导入的方式…

软考系统架构师知识点集锦九:数据库系统

一、考情分析 二、考点精讲 2.1数据库概述 2.1.1数据库模式 (1)三级模式:外模式对应视图&#xff0c;模式(也称为概念模式)对应数据库表&#xff0c;内模式对应物理文件。(2)两层映像:外模式-模式映像&#xff0c;模式-内模式映像;两层映像可以保证数据库中的数据具有较高的…

如何在Android设备上检查应用程序使用情况,包括使用时间

你可能不知道自己花了多少时间在手机上。很可能你一天中有一半的时间都在盯着手机屏幕。如果你怀疑这一事实,你会很快核实的。在这篇文章中,我们将向你介绍如何在Android设备上检查应用程序的使用情况。 如何在Android上检查应用程序电池使用情况 你使用时间最长的应用程序…

delphi 11.3 FastReport 多设备跨平台 打印之解决方法

以下能WINDOWS10 DELPHI 11.3 FastReport6.0上顺利通过 FastReport6.2对Multi-Device Application应用的支持不够友好&#xff0c;如下图&#xff1b;在palette FastReport6.0才出现几个制件。 非Multi-Device Application应用时是一大堆&#xff1b; 非Multi-Device Appl…

C++笔记-RTTR编译安装简单使用

这里以Linux为例&#xff0c;我使用的机器的gcc版本是4.9.2 使用的RTTR的版本是0.9.5 编译&安装 首先在官网将rttr的0.9.5版本下载下来。 Home |RTTR 按照官方的安装流程&#xff1a; 但这里可能会出现一个问题&#xff1a; 按照解答&#xff0c;切换成root用户&#x…

[java/力扣110]平衡二叉树——优化前后的两种方法

分析 根据平衡二叉树的定义&#xff0c;只需要满足&#xff1a;1、根节点两个子树的高度差不超过1&#xff1b;2、左右子树都为平衡二叉树 代码 public class BalancedBinaryTree {public class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(){}TreeNode(int va…

8+双疾病+WGCNA+多机器学习筛选疾病的共同靶点并验证表达

今天给同学们分享一篇双疾病WGCNA多机器学习的生信文章“Shared diagnostic genes and potential mechanism between PCOS and recurrent implantation failure revealed by integrated transcriptomic analysis and machine learning”&#xff0c;这篇文章于2023年5月16日发表…

生产级 React 框架介绍

文章目录 生产级 React 框架生产级 React 框架Next.jsRemixGatsbyExpo 如何选择生产级 React 框架 生产级 React 框架 React 是一个流行的 JavaScript 框架&#xff0c;用于构建用户界面。React 框架可以帮助你快速构建高质量的 React 应用&#xff0c;但并不是所有的 React 框…

MySQL(2):环境搭建

1.软件下载 软装去官网下载&#xff08;社区版&#xff09;&#xff1a;https://downloads.mysql.com/archives/installer/&#xff08;历史版本可选&#xff09; 选择下面的&#xff0c;一步到位 2.软件安装 双击 .msi 文件 选完 Custom 自定义后点 next 按 1&#xff0c…