模块
Package | Useage |
---|---|
Altair | 1. 绘图 2.可在Jupyter环境放大、缩小、交互 |
Categorical_encoders | 对类别变量进行0-1编码、独热编码(One-Hot Encoding) |
cmath | 对复数进行操作 |
collections | 对队列进行操作 |
Dython | 简易数据建模库 |
heapq | 1. 对堆进行操作 2. 可进行堆排序 |
jieba | 文本分词 |
Keras | |
matplotlib | 绘图 |
missingno | 可视化缺失值 |
NumPy | 对数组、矩阵操作 |
Pandas | 对序列Series、数据框DataFrame进行操作 |
pip | 安装python模块 |
Pyecharts | |
re | 正则表达式处理字符串 |
Seaborn | 基于Matplotlib的数据可视化库 |
sklearn | |
string | |
TextWrap | 文本段落处理 |
基础
对象
Python中的对象包含三个基本要素:
- id (身份标识)
- type (数据类型)
- vlaue (值)
切片操作
- Python的切片操作不会引起下标越界异常
1 | lst = ['a', 'b', 'c', 'd'] |
- 索引操作可能会引起下标越界异常
1 | lst = ['a', 'b', 'c', 'd'] |
命名
xxx
公用的命名方法
- 标识符由字母-数字-下划线组成
- 不能以数字开头
- 区分大小写
_xxx
- 半保护命名(protect)
- 代表不能直接访问的类属性
- 只有类对象和子类对象能访问
- 在模块或类外不可以使用
- 不能用
from module import *
导入 - 为了避免与子类的方法名称冲突
__xxx
- 全私有、全保护(private)
- 类的私有成员
- 只有类对象自己能访问,而子类对象不能访问
- 不能用
from module import *
导入 - 实际上是
_classname__xxx
xxx
- 内建方法
- 用户避免使用该定义方法
数据类型
Python3的6个标准数据类型:
- 不可变:
- 数字Number
- 字符串String
- 元组Tuple
- 可变:
- 列表List
- 字典Dictionary
- 集合Set
数字Number
Python3支持int、float、bool、complex数字类型。
复数
- 表示复数的语法是
real + image j
- 实部
real
和虚部image
都是浮点数 - 虚部的后缀可以是
j
或J
- 复数的conjugate方法可以返回该复数的共轭复数
1 | lst1 = [1, 2, 3] ## 可变对象 |
字符串
Post not found: python-字符串元组Tuple
- 是一种有序列表,和list非常相似
- 一旦初始化就不能修改
- 可以获取元素但不能赋值变成其他的元素
- 元组只包含一个元素时,要在元素后面添加逗号来消除歧义
- 元组的元素不允许删除
- 可用del删除整个元组
- 元组之间可以用 + 和 * 进行运算
- 创建tuple比list要快,存储空间比list占用更小
- tuple是不可变的,可以作为dict的key
- 成员关系操作符 in 和 not in 也可以直接用在元组上
- 用圆括号封装 ()
1 | cmp(tuple1, tuple2) ##比较两个元组元素 |
列表List
Python | 列表 List- 是一种有序的集合,可以随时添加和删除其中的元素
- 元素类型可以不同
- list可以嵌套(即list的元素可以是list)
- 成员关系操作符 in 和 not in 可直接用在列表上
- list 是可变的对象
- 用方括号封装 [ ]
1 | lst.append(a) ##在列表lst尾部添加元素a |
字典
集合set()
Python | 集合 Set1 | set(("Rank")) |
正则表达式
正则表达式:对字符串类型数据进行匹配、提取等操作的逻辑公式。
元字符
元字符(Meta Characters):标点等特殊字符。主要有等。
字符 | 说明 |
---|---|
. | 匹配除换行符(\n,\r)之外的任何单个字符。 若要匹配包括\n在内的任何字符,则应使用 (.\|\n)。 |
$ | 匹配输入字符串的结束位置。 如果设置了regex对象的Multiline属性,则$也匹配\n或\r之前的位置。如果$置于character class (即[$])中,则消除了其特殊意义。 例如,[akm$]示匹配a、k、m或$。 |
* | 匹配*前面的子表达式零次或多次。 等价于 {0,}。 |
+ | 匹配+前面的子表达式一次或多次;至少匹配一次。 等价于{1,} |
? | 匹配?前面的子表达式零次或一次。 等价于{0,1} |
| | 表示可选项(或),即 | 前后的表达式任选一个。 |
\ | 将一个字符标记为一个特殊字符/原义字符,或一个向后引用、或一个八进制转义符。 例如:\n表示换行符,而 n 表示字母“n”; \ 表示右斜杠“\”;\t表示制表符。 |
^ | 取非匹配 |
[] | 选择方括号例的任意一个。 例如,[0-2]与[012]完全等价,[Rr] 表示匹配字母R和r |
{} | 前面的字符或表达式的重复次数。 例如,{5,12}表示重复的次数不能小于5,不能多于12,否则都不匹配 |
() | 提取匹配的字符串。 例如,(\\s*)表示连续空格的字符串 |
数量词
数量词(Quantifiers)
字符 | 说明 |
---|---|
{n} | 至少匹配n次。 例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“fooooood”中的所有“o”;“o{1,}”等价于“o+”;“o{0,}”等价于“o*” |
{n,m} | n小于等于m。最少匹配n次且最多匹配m次。 【注】在逗号和两个数之间不能有空格。 例如,“o{1,3}”表示匹配“fooooood”中的前三个“o”;“o{0,1}”等价于“o?”,匹配“o”零次或1次。 |
序列
序列(Sequences):用于匹配字符序列。
字符 | 说明 |
---|---|
\b | 匹配一个单词边界(boundary),即单词和空格间的位置。 例如,“er\b”可以匹配单词“never”中的“er”,但不能匹配单词“verb”中的“er”。 |
\B | 匹配非单词边界。 例如,“er\B”可以匹配单词“verb”中的“er”,但不能匹配单词“never”中的“er”。 |
\d | 匹配任何一个数字字符(digits)。 等价于 “[0-9]”。 |
\D | 匹配任何一个非数字字符。 等价于 “[^0-9]”。 |
\f | 换页符。 等价于 “\x0c” 和 “\cL”。 |
\h | 匹配水平间隔 |
\H | 匹配非水平间隔 |
\n | 换行符 等价于 “\x0a” 和 “\cJ” |
\r | 回车符 等价于 “\x0d” 和 “\cM” |
\s | 匹配任何空白字符,包括空格、制表符、换页符等等。 等价于 “[\f\n\r\t\v]”。 |
\S | 匹配任何非空白字符 等价于 “[^\f\n\r\t\v]”。 |
\t | 制表符(tab) 等价于 “\x09” 和 “\cl”。 |
\v | 垂直制表符 等价于 “x0b” 和 “cK” |
\V | 匹配非垂直间隔 |
\w | 匹配任何字母、数字、下划线(单词)(word) 等价于 “[A-Za-z0-9]” |
\W | 匹配任何非字母、数字、下划线 等价于“[^A-Za-z0-9]” |
运算符
身份运算符 is
is
:身份运算符,比较变量的 id 地址是否相同,即是否指向同一块内存地址
比较运算符
`==``:比较运算符,比较变量的 value 是否相同,即不管是否是同一块内存地址,只要其值相同即可
1 | ## 涉及Python的深浅拷贝问题 |
1 | ## 涉及Python的深浅拷贝问题 |
内置函数
open()
打开一个文件,创建一个file对象
1 | open(name[, mode[, buffering]]) |
name
:文件名称mode
:打开文件的模式buffering
:是否寄存buffering=0
:不寄存buffering=1
:访问文件时会寄存行buffering=c
:$c>1$,表明寄存区的缓冲大小buffering=c
:$c<0$,寄存区的缓冲大小为系统默认
模式 | 打开方式 | 其他说明 |
---|---|---|
r |
只读 | (1)文件的指针放在文件的开头 (2)默认模式 |
rb |
以二进制格式打开文件用于只读 | (1)文件的指针放在文件的开头 (2)默认模式 |
r+ |
用于读写 | 文件的指针放在文件的开头 |
rb+ |
以二进制格式打开文件用于读写 | 文件的指针放在文件的开头 |
w |
只用于写入 | |
wb |
||
w+ |
用于读写 | |
wb+ |
以二进制格式打开文件用于读写 | |
a |
用于追加 | |
ab |
以二进制格式打开文件用于追加 | |
a+ |
用于读写 | |
ab+ |
以二进制格式打开文件用于追加 | (1)如果该文件已存在,文件指针将会放在文件的结尾 (2)如果该文件不存在,创建新文件用于读写。 |
r
表示 ''
内的字符串默认不转义
1 | print('Hello,\nWorld') ## ''内的\n发生了转义(换行) |
str()
zip()
1 | for part in zip(*[iter('AABCAAADA')]*3): |
1 | for part in zip(*[iter('AABCAAADA')]*3): |
内置数据集
seaborn
Post not found: python-seaborn Seaborn
使用load_dataset()
载入数据集(需要联网);seaborn含有的数据集有:
anscombe
attention
brain_networks
car_crashes
diamonds
dots
exercise
flights
fmri
gammas
iris
mpg
planets
tips
titanic
1 | import seaborn as sns |
sklearn
Post not found: python-sklearn Sklearn
使用load_数据集名称()
载入数据集
函数名 | 详情 | 用途 |
---|---|---|
load_boston |
Boston房价数据 | 回归 |
load_iris |
经典的鸢尾花数据 | 分类 |
load_diabetes |
糖尿病患者数据 | 回归 |
load_digits |
手写数字数据 | 多分类 |
load_linnerud |
||
load_wine |
分类 | |
load_breast_cancer |
分类 |
sklearn中较大型数据集(需要联网)请看:Post not found: python-sklearn Sklearn中的
datasets
Python2 vs Python 3
默认编码
Python 2 | Python 3 | |
---|---|---|
默认编码 | ASCII | utf-8 |
用户交互
Python 2 | Python 3 | |
---|---|---|
用户输入函数 | raw_input() |
input() |
Unicode
Python 2 | Python 3 | |
---|---|---|
Unicode默认 | 2个字节表示一个字符 | 4个字节表示一个字符 |
init文件
Python 2 | Python 3 | |
---|---|---|
init文件 | 新建的包如果没有init文件,不能被调用 | 新建的包里面的init文件如果被删除,包照样可以被调用 |
range
Python 2 | Python 3 | |
---|---|---|
xrange |
有 返回一个迭代器 在每次循环中生成序列的下一个数字 |
无 |
range |
有 返回一个list |
有 相当于Python2中的 xrange |
print函数
Python 2 | Python 3 | |
---|---|---|
print |
是statement,不需要加括号 | 是函数,需要加括号 |
整数相除
Python 2 | Python 3 | |
---|---|---|
/ |
3/2 是int |
3/2 是float |
异常处理
Python 2 | Python 3 | |
---|---|---|
as 关键字 |
不用使用 | 必须使用 |
1 | ## Python 2 |
map函数
Python 2 | Python 3 | |
---|---|---|
map() |
返回list | 返回迭代器(iterator) |
不等运算符
Python 2 | Python 3 | |
---|---|---|
不等运算符 | <> 或 != |
只有!= |
数据类型
Python 2 | Python 3 | |
---|---|---|
数据类型 | 有 long 类型 |
没有long 类型,只有int |
has_key方法
Python 2 | Python 3 | |
---|---|---|
字典 | 字典支持has_key方法 | 字典不支持has_key方法 |
1 | person = {"age": 35, "name": "Wang Wu"} |
其他
位
- bit,比特位,b
- 是计算机内部数据存储的最小单位,表示二进制数(也就是0, 1)
字节
- byte,B
- 是计算机中数据处理的基本单位
简写 | 英文名称 | 中文名称 | 换算 |
---|---|---|---|
B | byte | 字节 | 1B = 8 b |
KB | Kilobyte | 千字节 | 1KB = 1024 B |
MB | Megabyte | 兆字节/百万字节,简称兆 | 1 MB = 1024 KB |
GB | Gigabyte | 吉字节/十亿字节,简称千兆 | 1 GB = 1024 MB |
TB | Terabyte | 太字节/万亿字节 | 1 TB = 1024 GB |
PB | Petabyte | 拍字节/千万亿字节 | 1 PB = 1024 TB |
EB | Exabyte | 艾字节/百亿亿字节 | 1 EB = 1024 PB |
ZB | Zettabyte | 泽字节/十万亿亿字节 | 1 ZB = 1024 EB |
1 |