深度学习实战之Python教程(1)

article/2025/11/6 2:12:20

Python入门教程

    以熟练使用Pytorch完成深度学习模型为目标,简单介绍Pytorch涉及到的Python基础(Python其它知识可以在遇到后再学习,先动手)。
    这篇教程并不涉及Python的复杂方法,教程的结构如下:
    1.Python实例
    2.Python基础
     - 2.1 Python数据类型
     - 2.2 Python语法

    3.Numpy
    4.类
    5.文件读写
    6.错误分析

1.Python实例

    先通过一个Python实例来看一下Python的语法,这里可以看到对于函数,循环,if判断,都是用四个空格缩进来表示函数体或循环体,类似C语言的{},不再缩进就表示退出了函数体,# 表示注释。

# 函数
def add_do(string):if "$" not in string:string = "$" + string  # 字符串组合return string# 把以下列表中缺少$的都加一个$
test = ["1","16","3","$8","11","$25","77","7","15"]
# 方法1
for i in range(len(test)):test[i] = add_do(test[i])  # 修改列表的第i个值print(test)

输出:

['$1', '$16', '$3', '$8', '$11', '$25', '$77', '$7', '$15']

2.Python基础

2.1 Python数据类型
在这里插入图片描述

2.1.1数字
    数字用于储存数值,包括整型与浮点型,支持常见的数学运算,对特殊的如sin,cos计算需要引入额外的官方库,后面会有说明。

############### 运算 ################
a = 10
b = 5
print(a/b)

数字常见的方法如下:

# 取整
a = 1.6
b = int(a)  # int是截断取整,若要四舍五入可以用int(a+0.5)
print(b)  # 输出1# 幂次
a = 10 ** 3
print(a)  # 输出1000

2.1.2字符串
    字符串由任意符号组成,用一对单引号’’或一对双引号””括起,两种写法是一样的。

############### 字符串 ################
a = "abc" 
b = 'abc'
print(a == b)  # 输出True# 字符串常见运算
# case1 字符串相加
a = "hello"
b = " "  # 空格也是字符串
c = "world!"
print(a+b+c)  # 输出"hello world!"# case2 去除字符串头尾两端的符号
a = " my name is F! "
print(a.strip())  # 输出"my name is F!"b = "my name is F!\n"
print(b.strip("\n"))  # 输出"my name is F!"# case3 替换
a = "mh name is F!"
print(a.replace("h", "y"))  # 输出"my name is F!"# case4 分割字符串
a = "x1=1,x2=2,x3=3,x4=4"
l = a.split(",")
print(l)  # 输出['x1=1', 'x2=2', 'x3=3', 'x4=4']

练习: 字符串a = ”hello world”, 判断”world”是否在字符串a中。

2.1.3列表(重点)
    列表是Python中最基本最常用的数据结构,也是numpy数组的基础,需要重点掌握。
2.1.3.1列表访问
    列表用[n]符号进行访问,且n从0开始,注意列表截取查询时,写法是a[x:y]表示取x,x+1,x+2…y-1,不包含y这个位置的值,类似于集合的左闭右开[x,y)。

l = [1,2,3,4,5]  # 定义一个长度为5的列表,元素可以为数值,字符串,列表,字典等# 列表访问,可以正序与倒序访问。
print(l[0])  # 输出1,即列表的第一个元素
print(l[-1])  # 输出5,即列表的最后一个元素
#print(l[5])  # 报错,超出列表范围。

2.1.3.2 列表常用方法

# 列表截取
b = l[1:3]
print(b)  # 输出[2,3],即列表的第1个元素到第3-1个元素# 列表常用方法
# case1列表添加元素
a = ["a","b","c"]
a.append("d")
print(a)  # 输出['a', 'b', 'c', 'd']# case2列表删除元素,通过指数删除
a = ["a","b","c"]
del a[0]
print(a)  # 输出['b', 'c']# case3 求长度
a = [1,2,3,4,5]
print(len(a))  # 输出5# case4 判断元素是否在列表中
a = ["x","y","z"]
if "x" in a:print("x in list a!")

2.1.3.3 列表循环

# 列表循环方法1,不能修改列表中的元素
a = [1,2,3,4,5]
for item in a:item=0
print(a) # 输出[1,2,3,4,5]# 列表循环方法1,可以修改列表中的元素,但是不建议直接修改列表中的元素。
a = [1,2,3,4,5]
for i in range(len(a)):a[i]=0
print(a) # 输出[0,0,0,0,0]

2.1.3.4 转化为列表

# 其它数据类型转为列表,几乎万物皆可列表
a = "he wo!"
print(list(a))  # 输出['h', 'e', ' ', 'w', 'o']a = set((1,2,3)) # 定义集合
print(list(a))  # 输出[1, 2, 3]

练习1: 列表a = [1,2,3],列表b = [3,4,5],问:a+b等于什么?
练习2: 列表a = [[1,2,3],[4,5,6]],列表的size为2*3,访问列表的第一行(最外层),第二列元素(里层)。

2.1.4元组
    元组与列表类似,只是一旦定义后无法更改,元组基本支持列表除了增删操作以外的所有方法。

2.1.5字典
    字典由键与值组成,它们之间一一对应,字典的一一对应是个很重要的特性。
在这里插入图片描述

字典的意义:
1.Python用字典查询很快,列表的话需要遍历查找。
2.经常需要存储一一对应的值,比如有十个人,每个人借了几本书,通过字典的人名与书名列表可以用一个变量来储存,不然可能需要十个变量来储存。

练习1: 用一个字典储存字典的意义2中描述的问题。

2.2 Python语法
2.2.1 print
    程序运行时间通常会比较长,中途很多步骤打印结果方便自己知道运行进度,运行结果,如果有错误可以马上停止程序。
    print有以下三种常见方式。

print("hello python!")print("pi is:",3.1415926)print("a={0},b={1}".format(1,2))

    字符串的格式化方法.format()比较常用,可以用(1,2,…)中的数据1,2,…替换字符串中的{},按顺序依次替换。

2.2.2 if条件判断

# True,False为bool值,首字母大写
# if判断语句后面冒号,且判断的内容行缩进四个空格
if True:  print("True")a = 10
b = 5
if a > b:print("a = ",a)print("b = ",b)print("a is bigger than b!")
elif a == b:print("a = ",a)print("b = ",b)print("a is equal to b!")
else:print("a = ",a)print("b = ",b)print("b is bigger than a!")

    单个条件的写法有以下三种比较常见,形式不单一,只要if后面跟着判断即可,不过判断的等号要注意是两个等号”==”,例如if a==1:

# 单个条件的写法
if a > b:passif a in list:passif True:pass# 多条件的写法
if a > b and a > c:passif a in list and a >b:passif a >b or a>c:pass

2.2.3 for循环
在这里插入图片描述

    第一行为循环判断,如果满足条件,则进入循环体,执行完循环体后i自动更新为下一个,再到第一行的判断…
continue:进入循环判断,不执行后面的判断是否等于50以及打印
break:退出循环

练习1 :# 把以下列表中缺少 的 都 在 前 面 加 一 个 的都在前面加一个 符号
test = [“1”,“16”,“3”,"$8",“11”,"$25",“77”,“7”,“15”]

2.2.4 函数
    定义函数的格式如下:

"""
def 函数名(形参1,形参2,...):函数内容return 结果
"""

    函数的定义与调用实例:

def my_sum(a,b):result = a + breturn resultc = my_sum(1,2)
print(c)

注意:
    后续设置的变量名称不能与函数名重复

2.2.5 import模块
    Python之所以好用,是因为有很多开发者提供了各个领域的模块,从数学运算,地理信息,图像处理各个方面都有“包”提供,基本上都涵盖所需要的代码,所以Python开发者又称为“调包侠”。
    Python是脚本语言,但是一个项目一般不会只有一个.py文件,多个.py文件之间的交互通过import模块来实现。

2.2.5.1 import官方库
    Python官方提供了很多库,比如math,内置很多sin,cos等计算的函数。

"""
方法1:from A import a,b,...
方法1 import的函数可以直接调用方法2:import A
方法2可以通过点符号来调用A中的函数,有时调用的库名字太长可以用as定义一个缩写方法3:from A import *
方法3直接把库中的所有函数都import,要慎用,避免与自己的代码变量重名。
"""
# case1
from math import sin,cos
print(sin(1))# case2
import math as m
print(m.sin(1))# case3
from math import *
print(sin(1))

2.2.5.2 跨文件调用方法或者类
    创建两个文件,一个test1.py,一个main.py,要在main.py里调用test1.py中的函数。
在test1.py中编写函数主体:
在这里插入图片描述

在main.py中调用:
在这里插入图片描述

    这里可以看到用from xxx import xxx的形式可以引入其它文件,那问题来了,程序怎么知道test1.py文件在哪里呢?会搜索本地资源吗?test1.py放在哪里该代码才能生效?


http://chatgpt.dhexx.cn/article/novPAaJf.shtml

相关文章

深度学习教程(3) | 浅层神经网络(吴恩达·完整版)

作者:韩信子ShowMeAI教程地址:https://www.showmeai.tech/tutorials/35本文地址:https://www.showmeai.tech/article-detail/214声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 本系列为吴…

《深度学习入门》(一)

感知机(perceptron) 感知机是由美国学者Frank Rosenblatt在1957年提出的。 学习原因:作为神经网络(深度学习)的起源算法。学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想。 1. 感知机是什么 感知机…

深度学习基础学习

CNN发展:BP--LeNet(标志CNN面世)--Deep learning(2012) 卷积神经网络CNN:包含卷积层的神经网络 利用BP(反向传播)算法训练LeNet5网络 检索、目标检测、图像分割、图像描述 全连接层:神经元全连接 BP算法…

【深度学习基础】

最终效果如上图所示:真不知道这一路有多艰难 众所周知CHATGPT 可以做表格和 公式 ,但它输出的文本是直接渲染好的 你是直接复制不了的,你只能复制它出来的字体 于是我尝试了各种 想让它输出表格和文字的方法 包括且不限于 去控制台看它输出…

深度学习教程(2) | 神经网络基础(吴恩达·完整版)

作者:韩信子ShowMeAI教程地址:https://www.showmeai.tech/tutorials/35本文地址:https://www.showmeai.tech/article-detail/213声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 本系列为吴…

深度学习教程(4) | 深层神经网络(吴恩达·完整版)

作者:韩信子ShowMeAI教程地址:https://www.showmeai.tech/tutorials/35本文地址:https://www.showmeai.tech/article-detail/215声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 本系列为吴…

在服务器上进行深度学习的入门教程

1.远程登录 Windows用户推荐使用Xshell 主机那里填上服务器IP,下面填一下端口号,然后点击连接,之后会让你输入用户名密码,输入之后就可以进入啦 2.GPU状态 进入之后可能大家最想关注的就是GPU占用情况,可以使用一下两…

深度学习基础入门

课程简介 本课程共分为三个部分:基础理论、深度神经网络基本结构以及网络优化与实践。本课程采用了理论结合实践的讲解方式,方便读者边学边练,理解巩固。在解释相关概念时,作者尽力使用简单、直观、可实现的公式语言描述,尽量避免使用图形、比喻和白话等容易使初学者误入…

深度学习教程(5) | 深度学习的实用层面(吴恩达·完整版)

作者:韩信子ShowMeAI教程地址:https://www.showmeai.tech/tutorials/35本文地址:https://www.showmeai.tech/article-detail/216声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 本系列为吴…

深度学习教程 | 吴恩达专项课程 · 全套笔记解读

作者:韩信子ShowMeAI教程地址:https://www.showmeai.tech/tutorials/35声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 引言 本篇内容是ShowMeAI组织的「深度学习教程 | 吴恩达专项课程 全套笔记解…

深度学习教程(1) | 深度学习概论(吴恩达·完整版)

作者:韩信子ShowMeAI教程地址:https://www.showmeai.tech/tutorials/35本文地址:https://www.showmeai.tech/article-detail/212声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 本系列为吴…

【零基础深度学习教程第一课:深度学习基础】

深度学习基础 目录 *深度学习基础*《第一节 深度学习简介》一、深度学习与机器学习区别二、神经网络简介2.1 单神经元网络2.2 多神经元网络 《第二节 神经网络基础》一、数据矩阵化1.1 惯例符号1.2 表示方法 二、激活函数与损失函数2.1 激活函数2.2 损失函数2.2.1 损失函数的定…

深度学习基础快速入门

目录 一、前言 二、MRI成像方向相关 三、相关技术文档 四、环境搭建相关 五、深度学习常用的函数 5.1numpy的使用 numpy.ones numpy.transpose numpy.delete 5.2matplot散点图绘制 5.3torch的使用 六,深度学习知识方面 6.1梯度 6.2loss函数 七、卷积神…

【深度学习基础】《深度学习》李宏毅

目录 Lecture I: Introduction of Deep Learning 1. 深度学习的步骤 2. 全连接前馈神经网络(Fully Connect Feedforward Network) 2.1 神经元 2.2. 激励函数 2.3 Softmax layer 2.4 网络结构 2.5 应用举例(数字识别) 3. …

深度学习基础知识教程

本文主要分享一些深度学习入门的学习途径,同学们共同进步呀! 首先说下学习深度学习必备技能: Python、高等数学(现代、微积分)、英文文献阅读、查找资料(博客、论坛、Git) 个人认为如果以前…

mysql索引优化 - 多表关联查询优化

1 left join EXPLAIN SELECT * FROM class LEFT JOIN book ON class.card book.card; LEFT JOIN条件用于确定如何从右表搜索行, 左边一定都有, #所以右边是我们的关键点,一定需要建立索引 。 结论: 在优化关联查询时,…

Clickhouse一级索引优化方案

文章目录 Clickhouse的应用场景1、索引介绍1.1、主要索引1.2、二级索引1.2.1、数据跳过索引 2、一级索引优化2.1、CK的sql的优化方向2.2、验证过程结论: 2.3、如何修改排序键总结: 3、二级索引(跳数索引) 知识点查看Clickhouse的执…

Mysql详解——索引优化

本篇文章是对Mysql索引的创建以及优化进行一个介绍,关于索引的底层原理可以看我另一篇文章:Mysql详解——索引详解 文章目录 一、索引的创建和设计原则1. 索引的声明和使用1.1 索引的分类:1.2 索引的创建:在创建表时创建索引&…

MySQL SQL和索引优化总结

文章目录 一、SQL语句和索引的优化二、应用优化三、MySQL Server优化1. 自适应哈希索引2. redo log3. MySQL查询缓存4. 索引和数据缓存5. MySQL线程缓存6. 并发连接数量和超时时间 首先我们需要知道MySQL主要是从以下3个方面进行优化: SQL语句和索引应用优化&#…

mysql嵌套子查询索引_SQL 子查询,索引优化

场景 索引优化 单列索引 多列索引 索引覆盖 排序 场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表 create table Course( c_id int PRIMARY KEY, name varchar(10) ) 数据100条 学生表: create table Student( id int PRIMARY KEY, name varchar(10) ) 数据70000条 …