《Python数据科学入门》之阅读笔记(第2章)

Python数据科学入门

Dmitry Zinoviev著
熊子源 译


第二章 数据科学的Python核心


第4单元 理解基本的字符串函数

大小写转换函数:
lower() 将所有字符转换为小写
upper() 将所有字符转换为大写
capitalize() 将第一个字符转换为大写,同时将后面的字符都转化为小写

(这些操作都不会影响其他非字母字符)

字符串判定函数:
islower() 判断字符串中的所有字母是否都是小写
isupper() 判断字符串中的所有字母是否都是大写
isspace() 检查所有字符是否为空格
isdigit() 检查所有字符是否为0-9中的数字
isalpha() 检查所有字符是否为a-z,A-Z中的字母字符
符号b表示二进制数组:
Array1 = b”hello”	#二进制数组
Array2 = ”hello”	#字符串数组
>>>Array1[0]
104
>>>Array2[0]
‘h’
Array1.decode()	#将二进制数组转化为字符串数组
Array2.encode()	#将字符串数组转化为二进制数组
去除字符串周围的空格:
strip() 删除整个字符串前后的空格
istrip() 删除字符串左边(开始处)的空格
rstrip() 删除字符串右边(结束处)的空格

(不删除字符串内部的空格)

分割、连接字符串:
Split(delim=””)			#使用delim中的内容作为分隔符,来分割字符串
“”.join()				#使用””中的内容将()中的内容连接起来
查找字符索引:
“”.find(needle)		#查找needle在””字符串中第一次出现的索引值
“”.Count(needle)	#查找needle在””字符串中出现的次数

(区别字符串大小写)


第5单元 选择合适的数据结构

列表 搜索时间是线性的,不适合存储大量的可搜索数据
元组 不可变的列表,搜索时间也是线性的
集合 不存在索引,适合成员查询和消除重复项
字典 构建一个从键到值得映射,适合键值的查找

字典说明:
1,通过(键,值)这样的元组列表创建字典
2,使用内置类构造函数enumerate(seq)创建字典(seq为值,键位对应的序号)
3,使用内置类构造函数zip(kseq,vseq)创建字典(kseq为键序列,vseq为值序列(两个序列的长度相同))


第6单元 通过列表推导式理解列表

列表推导式是将数据集(不一定是列表)转换为列表的表达式。
(没什么只要知识点,本来也就没有多少内容,就没有总结了)


第7单元 使用计数器

Collections()模块定义计数器
将计数的集合传递给构造函数counter,然后使用most_common()方法获取各项及其出现频率。

from collections import counter
phrase = “a man a plan a canal panama”
cntr = counter(phrase.split())
cntr.most_common()

第8单元 使用文件

With语句:显式的打开一个文件,在退出Python后能自动关闭文件

    #普通语句
    f = open(name,mode=”r”)
        	f.close()
    #with语句    
    With open(name,mode=”r”) as f
f.read() 以字符串或二进制形式读取文件所有数据
f.write() 以字符串或二进制形式向文件写入内容

第9单元 上网

Urllib.parse模块提供解析和构建网址的工具
Urlparse()方法将网址分为六个元素的元组:协议、网络地址、文件系统路径、参数、查询和片段


第10单元 使用正则表达式实现模式匹配

将一个需要使用多次的正则表达式编译成Pattern对象,使得模式匹配更高效

CompiledPattern = re.complie(pattern,flags=0)
正则表达式说明

基本操作:

· 除换行符外的任意字符
a 字母a
a|b a或b

字符类:

[a-d] a,b,c,d中任一字符
[^a-d] 除a,b,c,d中任意字符
\d 一个数字字符
\D 一个非数字字符
\s 一个空白字符
\S 一个非空白字符
\w 一个字母数字字符
\W 一个非字母数字字符

数量相关:

X* 0个或多个X
X+ 1个或多个X
X? 0或1个X
X{2} 2个且仅2个X
X{2,5} 2-5个X

转移字符:

\n 换行符
\r 回车符
\t Tab

界定符号:

^ 字符起始处
\b 单词边界
\B 非单词边界
$ 字符结束处
Re模块
re.split(pattern,string,maxsplit=0,flags=0) 	#通过Pattern(正则表达式)将字符串分为maxsplit个字符串,并返回子字符串列表
re.match(pattern,string,flags=0)				#检查字符串开头是否与Pattern相匹配
re.search(pattern,string,flags=0)				#检查整个字符串是否存在Pattern部分
re.findall(pattern,string,flags=0) 				#查找与Pattern相匹配的所有子字符串
re.sub(pattern,repl,string,flags=0)				#用repl替换字符串的所有非重叠匹配部分

第11单元 globbing文件名

Globbing是匹配特定文件名和通配符的过程,是正则表达式的简化版。
(通配符可以包含特殊字符’*’,”?”。+·不是特殊字符)


第12单元 Picking数据

Pickle模块用于实现序列化——将任意的Python数据结构保存到一个文件中,并将其作为Python表达式读回。


"We can never learn to fly without crashing a few times."--《The Flash》

你可能感兴趣的:(Python3.7,书籍笔记)