Python知识笔记

第一章、 python语言简介
第二章、Python语法基础
2.1Python数据类型
2.1.1数值类型
2.1.2字符串
2.1.3 布尔类型
2.1.4 空值
2.1.5 Python数字类型转换
2.2常量和变量
2.3运算符与表达式
2.4 序列数据结构
数据结构是计算机存储、组织数据的方式。序列是Python中最基本的数据结构。
序列中的每个元素都分配一个数字即它的位置或索引,第一个索引是0,第二个索引是1,依次类推。序列都可以进行的操作包括索引,截取(切片),加,乘,成员检查。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
Python内置序列类型最常见的是列表、元组、字符串。另外,Python提供了字典和集合这样的数据结构,它们属于无顺序的数据集合体,不能通过位置索引号来访问数据元素。
2.4.1 列表
列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表类似其他语言的数组,但功能比数组强大的多。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。实例如下:
list=['中国','美国',1997,2000]
list=[1,2,3,4,5]
列表索引从0开始。列表可以进行截取(切片)、组合等。
(1)访问列表中的值
(2)更新列表
可以对列表的数据项进行修改或更新,实例如下:
(3)删除列表元素
方法一:使用del语句来删除列表的元素:de list[1]
方法二:使用remove()方法来删除列表的元素:list,remove(2000)
方法三:使用pop()方法来删除列表的指定位置的元素,无参数时删除最后一个元素:list.pop(1)
(4)1.添加列表元素
可以使用append()方法在列表末尾添加元素,如下实例:
2.添加列表
可以使用+=,+连接另一个列表
(5)列表排序
Python列表有一个内置的list.sort()排序方法可以对原列表进行排序。还有一个sorted()内置函数,它会从原列表构建一个新的排序列表。例如:
list.sort( )和sorted( )接受布尔值的reverse参数,这用于标记是否降序排序。
(6)定义多维列表
可以将多维列表视为列表的嵌套,即多维列表的元素值也是一个列表。只是维度比父列表小一。

image.png

image.png

image.png


(7)列表生成式
列表生成式是Python内置的一种极其强大的生成list列表的表达式。
如果要生成一个list[1,2,3,4,5,6,7,8,9]可以用range(1,10):
可是,如果要生成[1*1,2*2,3*3,.....10*10],可以使用循环:
>>>L=[ ]
>>>for x in range(1,10):
Lappend(x*x)
>>>L #[1,4,9,16,25,36,49,64,81]
而列表生成式,可以用一句代替以上的繁琐循环来完成上面的操作;
列表生成式例题:
例题1:列表内置函数append
例题2:输出1-100以内3的倍数
例题3:输出所有的扑克牌的列表
例题4:
Python列表内置函数和方法

image.png


2.4.2元组
Python的元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组使用小括号(),列表使用方括号[]。元组中的元素类型也可以不相同。
1.创建元组
2.访问元组
3.元组连接
元组中的元素值是不允许修改的,但可以对元组进行连接组合,实例如下:
4.删除元组
元组中的元素值是不允许删除的,但可以使用del语句来删除整个元组。
5.元组与列表转换
可以使用下面方法将元组转换为列表:
列表对象=list(元组对象)
可以使用下面方法将列表转换为元组:
元组对象=tuple(列表对象)
2.4.3 字典
Python字典(dict)是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等。字典也被称作关联数组或哈希表。
1.创建字典
键值对key-value
一个简单的字典实例;
也可如此创建字典:
2.访问字典里的值
3.修改字典
4.删除字典元素
del语句允许使用键从字典中删除元素(条目)。
clear()方法清空字典所有元素。
5.in运算
字典里的in运算用于判断某键是否在字典里,对于value值不适用。功能与has_key(key)方法相似。
6.获取字典中的所有值
dict.1values()以列表返回字典中的所有值。
dict1.keys()以列表返回一个字典所有的键。
2.4.4集合
集合(set)是一个无序不重复元素的序列。集合基本功能是进行成员关系测试和删除重复元素。
1.创建集合
可以使用大括号({ })或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{ },因为{ }是用来创建一个空字典。
2.成员测试
由于集合本身是无序的,所以不能对集合进行索引或切片操作,只能循环遍历,或者使用in、not in来判断集合元素存在/不存在。
3.集合运算
可以使用“ - ”,“ | ”," & "运算符进行集合的差集,并集,交集运算。
set可以进行集合运算
4.集合中添加元素
add()方法向集合内增加元素,如啊果添加的元素已经存在的话,则不执行任何操作。
5.删除集合元素
remove(x)方法将元素x从集合s中移除,如果元素不存在,则会发生KeyError错误。
6.删除集合所有元素
clear()方法删除集合中的所有的元素。
7.集合关系的子集和超集
当一个集合s中的元素包含在另一个集合t中的所有元素,乘集合s是集合t的超集,反过来,乘t是s的子集。当两个集合中元素相同,两个集合等价。
8.ASCII码表
h是0100 1000 e是0110 0101
A 0100 0001 65

image.png


第三章 Python控制语句
第四章 Python函数与模块
第五章 Python文本处理
第六章 科学计算和可视化应用
6.1 Numpy库的使用
NumPy是非常有名的Python 科学计算工具包,其中包含了大量有用的工具,比如数组对象(用来表示向量、矩阵、图像等)以及线性代数函数。
其主要功能如下:
①ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
②用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
③用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
④线性代数、随机数生成以及傅里叶变换功能。
⑤用于集成由C、C++、Fortran等语言编写的代码的工具。
6.1.1 Numpy数组
NumPy库中处理的最基础数据类型是同种元素构成的数(ndarray)。 NumPy数组是一个多维数组对象,称为ndarray。
NumPy数组的下标从0开始。同一个NumPy数组中所有元素的类型必须是相同的。
1.创建Numpy数组,可以使用array函数从常规的Python列表和元组创造数组。
2.使用双重序列来表示二维的数组,三重序列表示三维数组,以此类推。
3.NumPy提供2个类似range的函数返回一个数列形式的数组。
(1).arange函数
( 2 ).linspace函数
通过指定开始值、终值和元素个数(默认为50)来创建一维数组,可以通过endpoint关键字指定是否包括终值,缺省设置是包括终值:
( 3 ).Numpy 库有一般 math 库函数的数组实现;如sin,cos,log。基本函数(三角、对数、平方和立方等)的使用就是在函数前加上np.这样就能实现数组的函数计算。
例题1:

4.Numpy中的数据类型

image.png



5.Numpy数组中的元素访问

image.png


6.1.2 Numpy数组的算术运算
Numpy数组的算术运算是按元素逐个运算。Numpy数组运算后将创建包含运算结果的新数组。
与其他矩阵语言不同,NumPy中的乘法运算符*按元素逐个计算,矩阵乘法可以使用dot函数或创建矩阵对象实现。
6.1.3 Numpy数组的形状
1.数组的形状
数组的形状取决于其每个轴上的元素个数。
2更改数组的形状
6.1.4 文件存取数组内容
NumPy提供了多种文件操作函数方便我们存取数组内容。
使用数组的方法函数tofile可以方便地将数组中数据以二进制的格式写进文件。tofile输出的数据没有格式,因此用numpy.fromfile读回来的时候需要自己格式化数据:
6.1.5 Numpy中图像数组
1. 获取图像数据
当载入图像时,我们通过调用array()方法将图像转换成NumPy的数组对象。
例1:
输出结果:(左边为原图,右边为程序输出后效果)

image.png


例2:
输出结果:(左边为原图,右边为程序输出后效果)

image.png


例3:
输出结果:(左边为原图,右边为程序输出后效果)

image.png


2.利用图像数组进行灰度变换
将图像读入NumPy 数组对象后,我们可以对它们执行任意数学操作。

image.png


图像变换:
输出结果:

image.png


3.图像缩放
NumPy的数组对象是我们处理图像和数据的主要工具。想要对图像进行缩放处理没有现成简单的方法。我们可以使用之前PIL对图像对象转换的操作,写一个简单的用于图像缩放的函数。
4.直方图均衡化
直方图均衡化是指将一幅图像的灰度直方图变平,使变换后的图像中每个灰度值的分布概率都相同。在对图像做进一步处理之前,直方图均衡化通常是对图像灰度值进行归一化的一个非常好的方法,并且可以增强图像的对比度。

将a矩阵与b矩阵运算后得出的结果放在矩阵b的指定位置中
将a矩阵的第一行与c矩阵运算后得出的结果放在矩阵b的第一行
将a矩阵的数与c矩阵运算后得出的结果放在矩阵b的所有空格

1.检测图片中横向条纹

image.png


输出结果:(左边为原图,右边为程序输出后效果)

image.png


2.检测图片中的横向与纵向条纹

image.png


输出结果:(左边为原图,右边为程序输出后效果)

image.png


3.检测图片中的横向与纵向条纹,并将图片柔和化
输出结果:(左边为原图,右边为程序输出后效果)

image.png


6.2 Matplotlib绘图可视化
Matplotlib是Python的2D&3D绘图库,它提供了一整套和MATLAB相似的命令API,十分适合交互式地进行绘图和可视化,我们处理数学运算、绘制图表,或者在图像上绘制点、直线和曲线时,Matplotlib是个很好的类库,具有比PIL更强大的绘图功能。
例题1:绘制曲线图

image.png


6.2.1matplotlib绘图线条样式和线条颜色

image.png

image.png

image.png


6.2.2 Matplotlib.pyplot模块
1.调用figure创建一个绘图对象
2.通过调用plot函数在当前的绘图对象中进行绘图
3.设置绘图对象的各个属性
xlabel、ylabel:分别设置X、Y轴的标题文字。
title:设置图的标题。
xlim、ylim:分别设置X、Y轴的显示范围。
legend():显示图例,即图中表示每条曲线的标签(label)和样式的矩形区域。
4.清空plt绘制的内容
plt.cla() #清空plt绘制的内容
plt.close(0) # 关闭0号图
plt.close('all') # 关闭所有图
5.图形保存和输出设置
plt.savefig("test.png",dpi=120)
6. 绘制多子图可以使用subplot()快速绘制包含多个子图的图表,它的调用形式如下:
subplot(numRows, numCols, plotNum)
例题2:绘制曲线图,使用不同颜色的曲线与线条样式

image.png


例题3:绘制sin(x)函数的曲线图,标注x和y轴上的文字并设置图表的标题

image.png


例题4:绘制两个函数图像,并显示图例

image.png


例题5:绘制函数图像,并用两个图表示出来,其中一个图上含有两条曲线,每个图片都配有横纵坐标文字。

image.png


6.2.3 绘制条形图、饼状图、散点图等
matplotlib是一个Python的绘图库,使用其绘制出来的图形效果和MATLAB下绘制的图形类似。pyplot模块提供了14个用于绘制“基础图表”的常用函数。

image.png


plt库提供了3个区域填充函数,对绘图区域填充颜色

image.png


1.条形图
barh( )就是绘制水平方向的条形图。

image.png


2.散点图
使用pyplot中的scatter ( )绘制散点图。

image.png


3.饼状图
使用pyplot中的pie( )绘制饼状图。

image.png



第七章 Python数据分析
Python Data Analysis Library (Pandas)是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas提供了一些标准的数据模型和大量能使我们快速便捷地处理数据的函数和方法。
Pandas提供如下数据类型:
(1)Series系列(Series)
是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。
(2)DataFrame数据框(DataFrame)
是二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。
(3)Panel面板(Panel)
是三维的数组,可以理解为DataFrame的容器。
7.1 Python Data Analysis Library(Pandas)
7.1.1 Series系列
1.创建Pandas系列
2.访问Pandas系列
(1)使用位置访问Pandas系列中数据
(2)使用索引访问Pandas系列中数据
7.1.2 DataFrame
数据框(DataFrame)是二维数据结构,即数据以行和列的表格方式排列。基本上可以把 DataFrame 看成是共享同一个index索引的Series的集合。
1.从单个列表创建DataFrame
2.从多维列表创建DataFrame
3.从键值为ndarrays/Lists的字典来创建
4.从系列Series的字典来创建
DataFrame的基本功能

image.png


例1:转置行和列:
例2:返回表示DataFrame的维度的元组
例3:返回列表前n行
例4:返回列表最后n行
7.1.3DataFrame的行列操作
(1)选择列
(2)添加列
(3)删除列
(4)行选择
(5)添加行
(6)删除行
7.2 Pandas统计功能
1.描述性统计
描述性统计又叫统计分析,一般统计某个变量的平均值、标准偏差、最小值、最大值、以及1/4中位数,1/2中位数,3/4中位数。

image.png


2.汇总DataFrame列数据
describe()函数是用来计算有关DataFrame列的统计信息的摘要。
7.2.1分组统计
7.2.3 Pandas合并/连接和排序
例题1:导入数据表

image.png


例题2:输出表格中指定位置的内容
例题3:修改指定位置数据并保存为新的表格

image.png


例题4:将两个表格相同的部分进行合并,并输出一个新的表格

image.png


例题5:将表格按照各种方式合并
一.

image.png


二.

image.png


三.

Python复制代码

1

2

3

4

5

6

7

8

import pandas as pd #导入pandas库

a = pd.read_excel('test.xlsx',sheet_name=1) #导入数据表

b = pd.read_excel('test.xlsx',sheet_name=2) #导入数据表

c = pd.merge(a,b,on='学号',how = 'left') #将两个表格进行合并,左边表格有的进行合并,没有的不输出

# c = pd.merge(a,b,on='学号',how = 'right') 同理,按照右边的表格进行合并

print(c)

输出结果如下:

image.png


例题6:筛选出表格中符合条件的行列

Python复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

import pandas as pd # 导入pandas库,将pandas简写为pd

a = pd.read_excel('test.xlsx',sheet_name=2) # 导入数据表

x = a.iloc[:,1] >=70 #所有行第1列,≥70分的

y = a.iloc[:,2] >=70 #所有行第2列,≥70分的

z = a.iloc[:,3] >=70 #所有行第3列,≥70分的

print(a[(x | y )& z]) #输出x或y有一个大于70分,z大于70分的

输出结果:

学号 语文 数学 英语

0 2022102208 41.538647 74.785744 79.674534

3 2022102211 99.655959 98.922996 91.338955

5 2022102213 75.669914 9.573417 76.403877

9 2022102217 79.757301 7.155797 94.303161

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值