python基础语法
python的优点
- 开源、易于维护、可移植
- 易于使用、简单优雅
- 广泛的标准库、功能强大
- 可扩展、可嵌入
- 所有的深度学习框架一般都有一个Python版的接口
- ...
python典型应用
- 数据分析:对数据进行清洗、去重、规格化和针对性的分析
- 科学计算
- 常规软件开发
- 人工智能
- 网络爬虫
- WEB开发
python基础语法
基础操作
python
#1.基础操作
age = 20 #声明一个变量age用来存储一个数字20
1+1 #基础数学加法
print('Hello World!')#打印Hello World!
条件判断if
- Python指定任何非0和非空值为True,0 或者None为False
- Python 编程中if 语句用于控制程序的执行,基本形式为:
- 其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
- else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。
python
#2.条件判断if
if 1 == 2:#如果if跟随的条件为假,那么不执行属于if的语句,然后寻找else
print("假的")
else:#寻找到else之后执行属于else中的语句
print("1==2是假的")
循环操作
Python基础语法Python的循环有两种,一种是for...in循环,可以依次把list或tuple中的元素迭代出来
第二种是while,只要条件满足,就不断循环,条件不满足时退出循环在while ... else 在条件语句为false 时执行else 的语句块
python
#3.循环操作--while
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 1
print(sum)
break、continue、pass语句
python
#4.breal、continue、pass
#break语句可以跳出for和while的循环体
n = 1
while n <= 100:
if n > 10:
break
print(n)
n += 1
python
#continue语句跳过当前循环,直接进行下一轮循环
n = 1
while n < 10:
n = n + 1
if n % 2 == 0:
continue
print(n)
python
#pass是空语句,一般用作占位语句,不做任何事
for letter in 'love':
if letter == 'v':
pass
print('pass')
print(letter)
核心数据结构
Number(数字):Python支持int, float, complex三种不同的数字类型
python
#5.数据类型--Number(数字)
#python支持int,float,complex三种不同的数字类型
a = 5
b = 5.20
c = 5 + 2j
print(type(a),type(b),type(c))
String(字符串)
- Python中的字符串可以使用单引号、双引号和三引号(三个单引号或三个双引号)括起来,使用反斜杠\转义特殊字符
- Python3源码文件默认以UTF-8编码,所有字符串都是unicode字符串
- 支持字符串拼接、截取等多种运算
python
#5.数据类型--String(字符串)
#支持字符串拼接、截取等多种运算
a = "Hello"
b = "Python"
print("a + b 输出结果:", a + b)
print("a[1:3]输出结果:", a[1:3])
List(列表)
- 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
- 列表是写在方括号[]之间、用逗号分隔开的元素列表。
- 列表索引值以0 为开始值,-1 为从末尾的开始位置。
- 列表可以使用+操作符进行拼接,使用*表示重复。
python
#5.数据类型--List(列表)
#列表是写在方括号 [] 之间、用逗号分隔开的元素列表
#列表索引值以0为开始值,-1为从末尾的开始位置
list = ['abcde',783,3.33,'moon',66.6]
print(list[-3:-1])
tinylist = [136,'moon']
print(list + tinylist)
Tuple(元组)
注意:定义一个只有1个元素的tuple,必须加逗号。
python
#5. 数据类型--Tuple(元组)
#tuple与list类似,不同之处在于tuple的元素不能修改。tuple写在小括号里,元素之间用逗号隔开
#元组的元素不可变,但可以包含可变对象,如list
t1 = ('abcde',666,3.33,'moon',30.3)
t2 = (1, )
t3 = ('a','e',['A','E'])
t3[2][0] = 'X'
print(t3)
# t1[3] = 'yes'
# print(t1)
# 报错:TypeError Traceback (most recent call last)
# Cell In[15], line 9
# 7 t3[2][0] = 'X'
# 8 print(t3)
# ----> 9 t1[3] = 'yes'
# 10 print(t1)
# TypeError: 'tuple' object does not support item assignment
# 错误原因:在Python中,元组是不可变的。这意味着一旦定义了元组,其元素就无法修改。元组的元素保持不变,不能重新分配。
dict(字典)
python
#5.数据类型--dict(字典)
#字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度
#键(key)必须使用不可变类型
#同一个字典中,键(key)必须是唯一的。
d = {'Mack':99,'Bob':98,'Lucy':100}
print(d['Mack'])
set(集合)
python
#5.数据类型--set(集合)
#set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
#set是无序的,重复元素在set中自动被过滤。
s = set([3,3,4,4,5,5])
print(s)
常用库
- numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包。
- matplotlib由各种可视化类构成,内部结构复杂的可视化基础包。
人工智能概述与入门基础
人工智能无处不在
搜素引擎:网页、图片、视频、新闻、学术、地图
信息推荐:新闻、商品、游戏、书籍
图片识别:人像、用品、动物、交通工具
用户分析:社交网络、影评、商品评论
机器翻译、摘要生成......
什么是人工智能
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新技术科学。
使一部机器的反应方式像人一样进行感知、认知、决策、执行的人工程序或系统。
人工智能发展历程
- 1956诞生:Dartmouth会议;标志着AI的诞生
- 1957第一次高峰:罗森布拉特;发明第一款神经网络Perceptron
- 1970第一次低估:计算能力突破受限,机器未能完成大数据训练
- 1986第二次高峰:BP算法出现;大规模神经网络训练
- 2000第二次低估:AI计算机DARPA未实现;政府投入缩减
- 2014第三次浪潮:深度学习算法成功;语音和视觉识别为99%和95%
- NOW:AI爆发
人工智能与机器学习、深度学习关系
机器学习:一种实现人工智能的方法
深度学习:一种实现机器学习的技术,人工神经网络是机器学习中的一个重要算法"深度"就是说神经网络中众多的层。
深度学习入门基础
深度学习优势--从图像识别说起
理想目的:让计算机像人一样理解图像
实际目的:让计算机将语义概念相似的图像划分为同一类别
图像识别面临挑战
- 语义鸿沟(Semantic Gap)现象:图像的底层视觉特性和高层语义概念之间的鸿沟
相同的视觉特性,不同的语义概念(相似但不同)
不相似的视觉特性,相同的语义概念(相同但角度不同)
传统方法
- 用全局的视觉底层特性统计量表示图像
- 全局特征会丢掉了图像细节
- 人工特征提取+分类器
深度学习
手工地选取特征是一件非常费力、启发式(需要专业知识)的方法,能不能选取好很大程度上靠经验和运气,而且它的调节需要大量的时间,而深度学习是学习特征。
一般过程如下:
数学基础
- 数据表示------标量、向量、矩阵和张量
向量的范数、常见的向量
常见的矩阵、矩阵的操作
- 优化的基础------导数及其应用
导数、泰勒公式
拉格朗日乘数法
- 概率模型的基础------概率论
概率分布、边缘概率、条件概率
期望、方差和协方差
深度学习框架
深度学习框架的优势:
- 易用性:屏蔽底层,用户只需关注模型结构。同时,深度学习工具简化了计算,降低了深度学习入门门槛。
- 高效性:灵活的移植性,可将代码部署到CPU/GPU/移动端上。选择具有分布式性能的深度学习工具会使模型训练更高效。