作品简介

本书是面向Python学习者和使用者的一本实用学习笔记,在前一版的基础之上进行了全面修订。主要内容基于Python3编写,考虑到一些企业和项目由于历史原因仍然保留了许多用Python2编写的代码,为了方便读者,本书将Python2与Python3的一些核心区别标注出来,以便读者掌握。

全书共11章。第1章介绍Python的基础知识,包括Anaconda、IPython解释器、Jupyter Notebook等Python基本工具的使用;第2章介绍Python的基本用法,包括基础语法、数据类型、判断与循环、函数与模块、异常与警告、文件读写、内置函数;第3章介绍Python的进阶用法,包括函数进阶、迭代器与生成器、装饰器、上下文管理器与with语句、变量作用域;第4章介绍Python面向对象编程,包括对象的方法与属性、继承与复用;第5章介绍常见的Python标准库;第6章介绍Python科学计算基础模块NumPy,包括NumPy数组的操作、广播机制、索引和读写;第7章介绍Python数据可视化模块Matplotlib,包括基于函数和对象的可视化操作;第8章介绍Python科学计算进阶模块SciPy,包括概率、线性代数等模块;第9章介绍Python数据分析基础模块Pandas,包括Series和DataFrame的使用;第10章介绍一个用Python分析中文小说文本的案例;第11章介绍一个用Python对手写数字进行机器学习处理的案例。

本书适合刚接触Python的初学者以及希望使用Python处理和分析数据的读者阅读,也可作为学习和使用Python的工具书或参考资料使用。

李金,清华自动化系硕士,阿里巴巴负责广告推荐的算法专家,知乎达人,其在知乎上的高分问答“如何系统地自学Python?”阅读量达4000万,在Github上的“中文python笔记”也广受国内外读者好评。

作品目录

  • 前言
  • 第1章 初识Python
  • 1.1 人生苦短,我用Python
  • 1.1.1 Python简介
  • 1.1.2 版本的选择
  • 1.2 安装Python环境
  • 1.2.1 集成开发环境:Anaconda
  • 1.2.2 第一行Python代码
  • 1.3 使用Python工具
  • 1.3.1 IPython解释器
  • 1.3.2 代码的运行模式:解释器模式与脚本模式
  • 1.3.3 学习工具:Jupyter Notebook
  • 1.4 本章学习笔记
  • 第2章 Python基础
  • 2.1 基础语法简介
  • 2.2 数据类型
  • 2.2.1 数字
  • 2.2.2 字符串
  • 2.2.3 索引与分片
  • 2.2.4 列表
  • 2.2.5 元组
  • 2.2.6 可变与不可变类型
  • 2.2.7 字典
  • 2.2.8 集合与不可变集合
  • 2.2.9 赋值机制
  • 2.3 判断与循环
  • 2.3.1 判断
  • 2.3.2 循环
  • 2.4 函数与模块
  • 2.4.1 函数
  • 2.4.2 模块
  • 2.5 异常与警告
  • 2.5.1 异常
  • 2.5.2 警告
  • 2.6 文件读写
  • 2.6.1 读文件
  • 2.6.2 写文件
  • 2.7 内置函数
  • 2.7.1 数字相关的内置函数
  • 2.7.2 序列相关的内置函数
  • 2.7.3 其他内置函数
  • 2.8 本章学习笔记
  • 第3章 Python进阶
  • 3.1 函数进阶
  • 3.1.1 函数参数与返回值
  • 3.1.2 高阶函数
  • 3.1.3 map()函数和filter()函数
  • 3.1.4 Lambda表达式
  • 3.1.5 关键字global
  • 3.1.6 函数的递归
  • 3.2 迭代器与生成器
  • 3.2.1 迭代器
  • 3.2.2 生成器
  • 3.3 装饰器
  • 3.3.1 装饰器的引入
  • 3.3.2 装饰器的用法
  • 3.4 上下文管理器与with语句
  • 3.4.1 上下文管理器的引入
  • 3.4.2 上下文管理器的原理
  • 3.5 变量作用域
  • 3.6 本章学习笔记
  • 第4章 Python面向对象编程
  • 4.1 面向对象简介
  • 4.2 自定义类型
  • 4.3 方法与属性
  • 4.4 继承与复用
  • 4.5 公有、私有、特殊以及静态的方法与属性
  • 4.6 多重继承
  • 4.7 本章学习笔记
  • 第5章 Python标准库
  • 5.1 系统相关:sys模块
  • 5.2 与操作系统进行交互:os模块
  • 5.3 正则表达式:re模块
  • 5.4 日期时间相关:datetime模块
  • 5.5 读写JSON数据:json模块
  • 5.6 文件模式匹配:glob模块
  • 5.7 高级文件操作:shutil模块
  • 5.8 数学:math模块
  • 5.9 随机数:random模块
  • 5.10 路径操作:pathlib模块
  • 5.11 网址URL相关:urllib模块
  • 5.12 实例:使用标准库实现桌面墙纸下载
  • 5.13 本章学习笔记
  • 第6章 Python科学计算基础:NumPy模块
  • 6.1 NumPy模块简介
  • 6.2 数组基础
  • 6.2.1 数组的引入
  • 6.2.2 数组的属性
  • 6.2.3 数组的类型
  • 6.2.4 数组的生成
  • 6.2.5 数组的索引
  • 6.2.6 数组的迭代
  • 6.3 数组操作
  • 6.3.1 数值相关的数组操作
  • 6.3.2 形状相关的数组操作
  • 6.3.3 数组的连接操作
  • 6.3.4 数组的四则运算和点乘
  • 6.3.5 数组的数学操作
  • 6.3.6 数组的比较和逻辑操作
  • 6.4 数组广播机制
  • 6.5 数组索引进阶
  • 6.5.1 数组的基础索引
  • 6.5.2 数组的高级索引
  • 6.6 数组读写
  • 6.6.1 数组的读取
  • 6.6.2 数组的写入
  • 6.6.3 数组的二进制读写
  • 6.7 随机数组
  • 6.8 实例:使用NumPy实现K近邻查找
  • 6.9 本章学习笔记
  • 第7章 Python数据可视化:Matplotlib模块
  • 7.1 Matplotlib模块简介
  • 7.2 基于函数的可视化操作
  • 7.2.1 plt.plot()函数的使用
  • 7.2.2 图与子图
  • 7.3 基于对象的可视化操作
  • 7.4 图像中的文本处理
  • 7.5 实例:基于Matplotlib的三角函数可视化
  • 7.6 本章学习笔记
  • 第8章 Python科学计算进阶:SciPy模块
  • 8.1 SciPy模块简介
  • 8.2 插值模块:scipy.interpolate
  • 8.3 概率统计模块:scipy.stats
  • 8.3.1 基本统计量
  • 8.3.2 概率分布
  • 8.4 优化模块:scipy.optimize
  • 8.4.1 数据拟合
  • 8.4.2 最值优化
  • 8.4.3 方程求根
  • 8.5 线性代数模块:scipy.linalg
  • 8.6 实例:基于SciPy的主成分分析
  • 8.7 本章学习笔记
  • 第9章 Python数据分析基础:Pandas模块
  • 9.1 Pandas模块简介
  • 9.2 一维数据结构:Series对象
  • 9.2.1 Series对象的生成
  • 9.2.2 Series对象的使用
  • 9.3 二维数据结构:DataFrame对象
  • 9.3.1 DataFrame对象的生成
  • 9.3.2 DataFrame对象的使用
  • 9.4 Pandas对象的索引
  • 9.4.1 基于中括号的索引和切片
  • 9.4.2 基于位置和标记的高级索引
  • 9.5 缺失值的处理
  • 9.6 数据的读写
  • 9.7 实例:基于Pandas的期货数据分析
  • 9.8 本章学习笔记
  • 第10章 Python案例1:中文小说分析
  • 10.1 数据预处理
  • 10.2 数据统计
  • 10.3 数据建模
  • 10.4 效果分析
  • 10.5 本章学习笔记
  • 第11章 Python案例2:手写数字分析
  • 11.1 数据的获取与处理
  • 11.2 数据建模和效果分析
  • 11.3 本章学习笔记
展开全部