文章提纲

  • 全书总评
  • C01.Python 介绍
    • Python 版本
    • Python 解释器
    • Python 之禅
  • C02.Python 基础知识
    • 基础知识
    • 流程控制:
    • 函数及异常
      • 函数:
      • 异常
    • 字符串
      • 获取键盘输入:
      • 字符串处理
      • 字符串操作
      • 正则表达式
  • C05. 容器(Container)与集合(Collections)
    • 元组(Tuple)
    • 列表(List)
    • 字典(Dictionary)
    • 集合(Collections)
  • C06.Python 标准库
    • 数学模块:math
    • 时间模块:time,datetime,calendar
    • 随机数模块:random
    • 取样:
    • 文件处理:glob 和 fileinput
    • 压缩:bz2 和 gzip
    • 漂亮打印:pprint 模块
    • 跟踪异常日志:traceback 模块
    • 网络数据传输:JSON
  • C07. 用 Python 读写外部数据
    • CSV,csv 模块
    • Excel,pandas 模块(参考 C10)
    • MySQL,MySQLdb 模块,torndb 模块
    • PostgreSQL,psycopg2 模块
    • MongoDB,pymongo 模块
    • ElasticSearch,elasticsearch 模块
  • C08. 用 Python 解决统计问题
    • 描述性统计
    • 数据可视化
  • C09. 爬虫入门
    • request 模块
    • Xpath 模块
  • C10. 数据科学的第三方库
    • Numpy 模块
  • 从这里开始,先弃了,这本书适合了解了以后,再来根据作者的实践角度查遗补缺。
    • Pandas 模块
    • Scikit-Learn 模块
    • C11. 图数据分析
    • 图论基础
    • NetworkX 模块
    • 利用 NetworkX 进行图分析
  • C12. 大数据工具
    • Hadoop
    • Spark

全书总评

  • 书本印刷质量:4 星。印刷清楚,排版合适,错误很少。
  • 著作编写质量:3 星。Python 入门和与数据处理相关的各种模块的入门,以及数据处理的入门。作者是原著,写的确实是自己的东西,不是东抄西抄。只是实践部分的内容实在太浅薄了些。
  • 代码质量:4星。Python入门这本书的IT功底不够,中间可能会碰到一些坑,最好有点Python基础以后,用这本书查遗补缺。下载地址
  • 阅读笔记:记录需要记住的重点,方便快速回忆。

C01.Python 介绍

Python 版本

  • Python 2.x:2001 年发布,有许多资料和库基于这个版本编写;
  • Python 3.x:2009 年发布,与旧版本不兼容;

Python 解释器

  • Python是开源的,因此它的解释器有许多种实现,主流的是官方的解释器;

Python 之禅

  • import this

C02.Python 基础知识

基础知识

  • 基础数据类型:在 Python 中,所有的元素都是“对象”。

    • None:表示什么都没有的类型;
    • int:表示整数的类型;
    • float:表示浮点数的类型;
    • bool:表示布尔数值的类型;
    • str:表示字符串的类型;
  • 变量与赋值:Python 的书写规范(PEP8)
    • 序列解包
  • 操作符与表达式:
    • 算术操作符:
    • 位操作符:
    • 比较操作符:
    • 逻辑操作符:and,or,not
  • 文本编辑器:
    • 文件编码:UTF-8

流程控制:

  • 条件判断(if…elif…else…):
  • 循环:
    • while:
    • for…in…:
  • 缩进,空白与注释
    • 缩进:分割代码块;
    • 空白:没有任何意义,只为美观;
    • 注释:
      • 单行注释:“#”
      • 多行注释:”"”…”””

函数及异常

函数:

  • 函数定义:def func_name()
  • 参数定义:
    • 实参:
    • 形参:
    • 位置参数(参数绑定):根据定义和调用函数时参数的位置进行参数的赋值;
    • 关键字参数:非关键字参数不能定义在关键字参数后面。
    • 可变数量的参数:def func(*args, **kwargs)
      • *args:位置形参,表示任意数量的位置参数都会合并成一个元组,绑定到 args 上;
      • **kwargs:关键字形参,表示任意数量的关键字参数都会合并成一个元组,绑定以 kwargs 上;
  • 递归:
  • 闭包(closure):又称词法闭包(Lexical Closure)或函数闭包(Function Closure),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创建它的环境也不例外。

异常

  • 异常:(try…except…finally…)

字符串

  • 运算符:

    • “+”:字符串拼接;
    • “*”:字符串复制多份,然后拼接;
    • 切片 [start,stop,step]:
    • len():字符串长度;

获取键盘输入:

  • input(str):

字符串处理

  • 字符集

    • 字符(Character):是各种文字和符号的总称;
    • 字符集(Character Set):是多个字符的集合,字符集的各类很多,每个字符集包含的字符个数也不同。
    • 字符编码(Character Encoding):也称字集码,是把字符集中的字符编码按指定集合中的某一个对象,以便在计算机中存储和通过通信网络传递文本。
  • ASCII 字符集和编码
  • Unicode 字符集和 UTF-8 编码

字符串操作

  • 基本操作:

    • strip():移除字符串两侧的所有空白符;
    • capitalize():使字符串的首字母大写;
    • title():使字符串中每个单词的首字母大写;
    • lower():使字符串的所有字母小写;
    • upper():使字符串的所有字母大写;
    • isalnum():字符串中包含字母或者数字时为 True;
    • isdigit():字符串中只包含数字时为 True;
  • 分割:
    • split(delimiter):将字符串按指定分隔符分割;
    • rsplit(delimiter):将字符串从右边开始按指定分隔符分割;
  • 格式化:
    • %:print(‘%s’ %name)
    • format():print(‘{one} and {two}’.format(one=’1’,two=’2’))

正则表达式

  • 转义符:P55
  • re 模块:
    • re.compile():匹配模式;

      • match():匹配字符串;

C05. 容器(Container)与集合(Collections)

元组(Tuple)

  • 元组:与字符串一样,是有序的序列,不可以改变内容
  • 基本操作:连接、切片都与字符串保持一致;
  • 序列解包:也称多重赋值;
  • 支持迭代器协议,支持 for 循环

列表(List)

  • 列表:也是序列类型的对象,但是可以改变列表中的内容;
  • 基本操作:连接、切片都与字符串保持一致;
  • 更改操作:
    • pop():删除列表中的数据,并将删除的数据返回;
    • insert():插入数据;
    • append():追加数据;
    • extend():拼接列表;
  • 引用传递:所有的赋值都只是引用的传递,并没有创建新的数据;
    • list[:]:浅拷贝,只拷贝第一层引用的数据;
    • deepcopy():深拷贝,拷贝所有引用的数据;
  • 列表解析式:构造列表的方式,将一个函数作用到整个列表中每个元素的方式;[x for x in range(1,3)]

字典(Dictionary)

  • 字典在其他语言中被称为散列表,由 key:value 对通过{}组成的无序结构。
  • 常用的函数:
    • get(key):通过 key 取得对应的 value;还可以通过链式调用取值;
    • dict(list):构建新的字典;
    • dict.keys():获取字典的 keys 迭代;
    • dict.values():获取字典的 values 迭代;
    • dict.items():获取字典的 key:value 对的迭代;
    • dict.pop(key):取出指定关键字的值;
    • dict.update(key):更新字典中对应的 key 中的 value;

集合(Collections)

  • namedtuple():具名元组。
  • Counter():累加器,可以用来做经典的 word count;
  • defaultdict():为字典设定一个默认值;
  • OrderedDict():使字典有序;

C06.Python 标准库

数学模块:math

  • 常见常量:默认精度为 15 位,最多可以取得 48 位

    • math.pi
    • math.e
  • 无穷大与无效数字:
    • math.inf:表示“无穷大”,是 infinite 的缩写。math.inf*math.inf==math.inf
    • math.nan:表示“无效数字”,是 Not a number 的缩写。math.inf/math.inf==math.nan
    • int 的范围:在 3.5 中 int 长度理论上是无限的
    • float 的范围:1e-309~1e+309
  • 浮点数转换为整数:
    • math.trunc(f):截掉浮点型小数点后面的数字;
    • math.floor(f):取最接近浮点型数字的整数;
    • math.ceil(f):取比当前浮点型数字大的整数;
  • 绝对值和符号:
    • math.fabs(f):浮点数的绝对值;
    • math.copysign(x,y):符号函数,将 y 的符号传递给 x;
  • 常用计算:
    • math.fsum(values):解决 sum(values) 不能精确计算的问题;
    • math.factorial(x):阶乘计算函数。
  • 指数和对数:
    • math.pow(x,y):x 的 y 次幂;
    • math.log(x):x 以 e 为底的对数;
    • math.log10(x):x 以 10 为底的对数;

时间模块:time,datetime,calendar

  • time 模块:基础的时间处理模块;

    • time.time():表示为数字时间戳,即从格林威治时间:1970-1-1,0:0:0(北京时间:1970-1-1,8:0:0)以来所经历过的秒数;
    • time.ctime(x):没有 x 则返回当前时间的字符串版本,有 x 则返回从时间戳开始经过了 x 秒后的时间的字符串。
    • struct_time:具名元组,可以分别获得年 (tm_year)、月 (tm_mon)、当月第几日 (tm_mday)、时 (tm_hour)、分 (tm_min)、秒 (tm_sec),星期几 (tm_way,星期一是 0),当年第几天 (tm_yday),是否夏令时 (tm_isdst,没有为 0);
      • time.gmtime():格林威治下的 struct_time;
      • time.localtime():当前电脑所在时区的 struct_time;
      • time.mktime(struct_time):还原成数字时间戳的方式;
      • time.strptime(string,format):将字符串格式的时间按照格式转换成 struct_time 格式;
      • time.strftime(format,struct_time):将 struct_time 格式的时间元组转换成字符串格式;
  • datetime 模块:针对年月日和时分秒分别进行处理;
  • calendar 模块:处理万年历;

随机数模块:random

  • 随机数生成器:

    • random.random():生成均匀分布的浮点随机数,在半开半闭区间 [0.0, 1.0);
    • random.seed():设置随机数种子;
    • random.randint(a,b):返回整型随机数,在闭区间 [a,b];
    • random.randrange():返回整型随机数,在半开半闭区间 [a,b);

取样:

  • random.shuffle(list):按随机性质将列表重新排列顺序;
  • random.choice(list):按随机性质从列表中抽取数据;
  • random.sample(list,k):按随机性质从列表中抽取指定长度的数据;

文件处理:glob 和 fileinput

  • open(filename,mode):基于 mode 模式打开 filename 文件;还支持上下文管理器 with 模式;
  • glob 模块:目录处理;
  • fileinput 模块:批量文件读入;是一个帮助类;

压缩:bz2 和 gzip

  • 不建议使用的压缩格式:

    • rar:专门服务于 Windows 下,Python 需要第三方库才能打开;
    • tar:只用于打包文件,不对文件进行压缩;
    • zip:既可以压缩文件,还可以打包文件,因为自带打包功能,不适合用于对文件单独压缩;
  • 建议使用的压缩格式
    • bz2 模块:对单个文件可写可读,非常方便;
    • gzip 模块:对单个文件可写可读,非常方便;

漂亮打印:pprint 模块

跟踪异常日志:traceback 模块

网络数据传输:JSON

  • json.loads():将 JSON 转换成字典;
  • json.dumps():将字典转换成 JSON;

C07. 用 Python 读写外部数据

CSV,csv 模块

  • csv.reader():读取文件;
  • csv.writer():写入文件;
  • csv.register_dialect():delimiter= 注册分割符;
  • csv.DictReader():按照字典结构读取数据;*

Excel,pandas 模块(参考 C10)

  • pandas.read_excel():读取文件;
  • pandas.to_excel():写入文件;
  • pandas.set_option():设置属性值;
  • pandas.DataFrame():表格结构;

MySQL,MySQLdb 模块,torndb 模块

  • db=torndb.Connection(host,database,user,password):建立数据库链接;
  • db.insert(SQL),db.insertmany(SQL):向数据库中插入单行数据,插入多行数据;
  • db.query(SQL):从数据库读取数据;

PostgreSQL,psycopg2 模块

MongoDB,pymongo 模块

ElasticSearch,elasticsearch 模块

C08. 用 Python 解决统计问题

  • pandas 模块许多函数发生了改变;在 Python 3.7 下 read_excel() 运行有问题;统计都没办法测试了。

描述性统计

  • 均值:
  • 中位数:
  • 方差:
  • 标准差:

数据可视化

  • 基本函数:

    • plot()
    • show()
    • figure()
    • title()
    • xlabel()
    • ylabel()
    • legend()
  • 图形:
    • 折线图:
    • 散点图:
    • 柱状图:bar()
    • 饼图:pie()

C09. 爬虫入门

request 模块

  • HTTP 协议:
  • 获取 HTML 内容:

Xpath 模块

  • 解析 HTML 内容:
  • 这个模块已经没有匹配 Python3.7 的版本了,放弃这个学习。

C10. 数据科学的第三方库

Numpy 模块

  • ndarray:

    • 创建:

      • arange()
      • linspace():度量等宽
      • random.random():随机数
    • 属性:
      • ndim:数组的维度;
      • shape:数组的形状;
      • dtype.name:数组中数据的类型;
      • itemsize:数组类型占用的内存空间大小;
      • size:数组中元素个数;
    • 创建特定数组:
      • zeros():全零矩阵;
      • ones():全 1 矩阵;
      • empty():随机的小值组成的矩阵;
  • 基本运算:数组运算是基于元素计算的
    • 矩阵乘法:dot()
    • 迭代:与列表类似,直接迭代按行取数,flat() 可以把数组摊平为一维数组
    • 变形:resize() 原地修改数组;reshape() 输出一个变形后的数组,原数组不变;
    • 堆叠:hstack() 行数相同,水平堆叠;vstack() 列数相同,垂直堆叠;
  • 高级运算
    • transpose():转置;
    • linalg.inv():取逆;
    • eye():单位阵;
    • trace():取迹;
    • linalg.solve():解线性方程;
    • linalg.eig():解特征方程;

从这里开始,先弃了,这本书适合了解了以后,再来根据作者的实践角度查遗补缺。

Pandas 模块

Scikit-Learn 模块

C11. 图数据分析

图论基础

NetworkX 模块

利用 NetworkX 进行图分析

C12. 大数据工具

Hadoop

Spark

转载于:https://www.cnblogs.com/zhuyx/p/10557911.html

《Python 数据科学实践指南》读书笔记相关推荐

  1. 读书笔记 | 墨菲定律

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  2. 读书笔记 | 墨菲定律(一)

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  3. 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记

    <洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...

  4. 股神大家了解多少?深度剖析股神巴菲特

    股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...

  5. 2014巴菲特股东大会及巴菲特创业分享

     沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...

  6. 《成为沃伦·巴菲特》笔记与感想

    本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...

  7. 读书笔记002:托尼.巴赞之快速阅读

    读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...

  8. 读书笔记001:托尼.巴赞之开动大脑

    读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...

  9. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  10. 产品读书《滚雪球:巴菲特和他的财富人生》

    作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...

最新文章

  1. Java调用PHP,跑PHP代码
  2. php基础教程 第七步数组补充及循环基础
  3. java点击按钮在控制台输出_java 怎么获取控制台的数据并且输出到GUI上
  4. fmin在Matlab中,MATLAB-fminsearch函数的使用
  5. oracle子接点与父节点上下级关系数据库查询语句,及联查询,
  6. securecrt遇到一个致命的错误且必须关闭_高性能服务器之路 | 浅谈 Valgrind 内存错误检查神器 Memcheck...
  7. 《Dreamweaver CS6完美网页制作——基础、实例与技巧从入门到精通》——1.2 网页的基本构成元素...
  8. Linux打印显示时间
  9. Redis 菜鸟教程学习笔记- Redis 数据结构
  10. turtle库 科赫雪花(bug)的绘制
  11. [任天堂社长访谈之:Nintendo 3DS内置软件
  12. 腾讯觅影正式对外开放,可用AI进行医学图像分析和辅助诊疗
  13. Strus2 Unti1
  14. (附源码)springboot电影院售票与管理系统 毕业设计 011449
  15. 关于使用shopify 和theme 模版使用问题。
  16. android mml是什么软件,MML 文件扩展名: 它是什么以及如何打开它?
  17. arcgis数据量大显示慢_百万量级矢量数据加载对比实验,Arcgis VS LSV专业版
  18. 小米5-root-记录
  19. 计算机软件的知识产权属于什么权,计算机软件是否可以申请专利,属于哪种专利申请类型?...
  20. OpenCL: 从零开始学习OpenCL开发

热门文章

  1. 计算机1500字论文,当我打开电脑_1500字
  2. python实现m3u8转mp4方法2
  3. Windows 修改hosts过滤小游戏
  4. dede php低版本出现500错误,织梦后台生成文章提示500错误怎么办
  5. SMB 协议操作共享盘
  6. 傻瓜攻略(六)——MATLAB实现RBF神经网络
  7. 未来的事业计算机工程师英语作文,英语作文:我未来的事业 My Future Career
  8. session_Composite(组合模式)
  9. 中央财经大学c语言试题答案,中央财经大学C语言题
  10. 超文本咖啡壶控制协议