在学习python时我们面临的最大的问题是:当程序出现异常的时候,不知道应该如何处理?错误提示看不懂!看懂也不知道怎么做!
下面是入门Python需要学习的内容,一共是四个大课程:
-
Python系统化学习之路Python的学习路线
人工智能领域中Python的应用
Python的程序设计案例 -
初识Python认识python
python语法之输入与输出 -
Python基础入门Numpy
Pandas -
Python程序设计基础学习与应用python命名规则
字符串
列表
集合
字典
条件语句
循环语句
函数
模块
Python系统化学习之路
Python的学习路线,分为【语法基础】、【能力提升】、【技术进阶】、【项目实战】四个板块
知识点大纲,涵盖了25个专题和212个知识点
Python的学习路线
人工智能领域中Python的应用
人工智能体系结构
人工智能技术矩阵
Python的程序设计案例
GitHub地址:
https://github.com/zhangziliang04/PythonStudy
为了方便大家下载,我fork到了码云:
https://gitee.com/zheng_bo_pu/PythonStudy
制作词云
大家可以尝试更换title.txt文件以及python.jpg文件,当然simhei.ttf字体文件也是可以更换的
实时图像采集
人脸识别
尝试运行代码:
发现报错了:
这里一定不要慌,仔细读一下就会发现是缺失了一个名为’dlib’的库,我们安装一下:
进度条加载完,出现successful就表示安装完成了
初识Python
认识python
Python的意思是蟒蛇,源于作者喜欢的一部电视剧,是龟叔在1989年圣诞节期间,为了打发无聊的圣诞节而用C语言编写的一个编程语言,Python正式诞生于1991年
Python目前有两个版本, Python2和Python3 ,我们学习使用的是Python3版本
Python官网:
https://www.python.org/
关于Python的安装方法,大家可以查看我的这篇文章:
Python入门_给小白的学习指南
python语法之输入与输出
打印语句print()
print()方法自带换行
输入语句input()
input()语句输入的内容是字符串类型
Python基础入门
Numpy
Python科学计算领域,几乎所有科学计算库都依赖NumPy,它有以下基本功能:
- 强大的N维数组对象
- 广播功能
- 基于C语言,速度快
- 线性代数、傅里叶变换和随机数能力
下面来看一下具体操作:
常用函数
这里的四个输出,分别对应着arr数组,arr数组的最大值、最小值以及数组元素之和:
下面看一下怎么改变arr数组的形状:
可以看到,数组原来的形状是(10,1),经过reshape(2,5)后,形状变成了(2,5)即五列两行:
我们来看一下二维数组是怎么求平均数的:
得到的输出是6.5
一维数组的取值与列表相同,这里就不过多阐述了,下面看看二维数组是怎么取值的:
这里的"0:2"指的是取第一、二行,逗号后面的2表示的是第3个数,因为是从0开始计数的,所以取到了第一行和第二行的第三个数:
如果冒号前后没有指定,就会取全部行或列(左边对应行;右边对应列) 广播机制
使用数组时,如果要同时对数组里的元素做四则运算,需要用到for循环,而numpy的广播机制免去了for循环:
向量化计算
基本原则:
- 最大程度不使用for循环
- 尽量使用NumPy自带的函数
- 多使用广播
下面是两个矩阵相乘:
只有矩阵1的列数与矩阵2的行数相等时才能做矩阵乘法:
这样的广播机制比起使用for循环来说,计算量是大大地减少了
Pandas
Pandas为Python提供了高性能、易使用的数据计算功能
使用Pandas读取数据
方式1:
方式2:
csv文件内容:
读取csv文件:
head()方法不带参数,默认显示前5行,使用tail()可以查看后五条数据
方式3:
Pandas常用函数
以这段代码为基础举例:
选择数据:
查看"age"这个字段:
选出年龄能被3整除的数据:
去重:
去掉重复的性别,返回一个数组:
去掉第一个重复的数据:
如果把first改成last:
将保留最后一个重复的数据
分组(groupby):
按照性别分组:
Python程序设计基础学习与应用
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言
python命名规则
- 变量名只能包含字母、数字和下划线
- 变量名可以字母或下划线开头,但不能以数字开头
- 变量名不能包含空格,但可使用下划线来分隔其中的单词
- 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词
- 变量名应既简短又具有描述性
- 慎用小写字母I和大写字母0,因为他们可能被人错看成数字1和0
注意:应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但还是要避免使用大写字母
字符串
字符串或串(String)是由数字、字母、下划线组成的一 串字符
字符串有多种形式,可以使用单引号(’…’),双引号("…") 来获得同样的结果
个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
在人工智能应用开发过程中,我们往往需要根据文件路径读取文件,一般文件路径的格式为:
C:Windows\temp\readme.txt
对比上表,我们需要把\换成\才可以正确读取路径,于是有: C:\Windows\temp\readme.txt
我们知道的意义是作为转义字符,跟其他不同的字母组合具有不同的含义,那么我们只要取消\的转义功能就可以获取原来的路径字符串了。于是有: r"C:\Windows\templreadme.txt"
列表
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
列表可以修改,可以用于切片、增、删、改、查
列表的增加需要通过对象点方法调用内置的append方法,但是每次只能增加一个元素
与不可更改的字符串不同,列表是一个可以更改的类型
集合
集合Set是一个包含无序不重复的元素的集体
创建方法:
1).使用大括号{}或者set()函数创建集合;
2).注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字 典的。
在使用数据集进行机器学习训练时,当图像数据必须以list的形式输入时,为了避免图像数据的重复,可以利用集合去重。
集合可以通过update方法和add方法增加元素
字典
- 字典是一种可变的容器,可以存储任意类型的数据
- 字典中的每个数据都是用"键"(key)进行索引,而不像其他序列可以用下标来进行索引
- 字典中的数据没有先后顺序关系,字典的存储是无序的
- 字典中的数据以键(key)-值(value)对形式进行映射存储
- 字典的键不能重复,且只能用不可变类型作为字典的键
- 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一
条件语句
Python条件语句是通过一条或多条语句的执行结果(True或者False) 来决定执行的代码块
循环语句
Python for循环可以遍历任何序列的项目,另外一种执行循环的遍历方式是通过序列索引迭代
函数
在程序设计中,函数是组织好的,可重复使用的,用来实现单一, 或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。
在前面的学习中我们已经知道Python提供了许多内建函数,比如print()。 但我们也可以自己创建函数,这被叫做用户自定义函数。
在Python中,定义一一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
模块
Python的强大还体现在"模块自信”上, 因为Python不仅有很强大的自有模块(或者包、库,比如为标准库),还有海量的第三方模块(或者包、库),任何人还都能自己开发模块(或者包、库),正是有了这么强大的"模块自信”,才体现了Python的优势所在。并且这种方式也正在不断被更多其它语言所借鉴。