自学Python 编程基础、科学计算及数据分析 第2版
定 价:¥89.9
中 教 价:¥53.04 (5.90折)促销
库 存 数: 1
本书是面向Python学习者和使用者的一本实用学习笔记,在前一版的基础之上进行了全面修订。全书共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编程基础、科学计算、数据分析的自学教程。源自网上广受好评的中文python笔记,知乎 如何系统地自学 Python?千万访问量答主自学Python的经验总结。特别总结了Python多版本代码差异对比,配备全套数据集、源代码,方便使用者参考。
人生苦短,我用Python。Python是一门越来越流行的编程语言,它免费、易学,而且功能强大,在网络编程、图像用户界面编程、科学计算、数据挖掘、机器学习、人工智能等方面都有着广泛的应用。我在一年多的时间里,通过自学,从一个Python小白成长为一个Python老手,在这个过程中,用笔记的形式记录了自己学习和使用Python的经验。根据这段经历,于2019年出版了本书的第1版(基于Python 2.7版本)。经过数年的时间,这个学习笔记依然有着不小的阅读量:在知乎的高分问答如何系统地自学 Python?阅读量达到千万量级(https://www.zhihu.com/question/29138020/answer/81972368),GitHub上的学习笔记的Star达6300以上,Fork达2900以上(https://github.com/lijin-THU/notes-python)。由于对Python的学习、应用需求与日俱增,并且Python 3已成为主流,所以我对第1版的内容进行了大量的修改,升级改版为基于Python 3的自学笔记,相信会对开始学习并使用Python的朋友有所帮助。本书的集成开发环境是Anaconda,它是一个功能强大的Python计算环境。本书利用IPython解释器、Jupyter Notebook等工具开展Python编程的实践。本书首先介绍了Python工具的使用、Python基础和进阶用法、面向对象编程,为读者打下良好的基础:优秀的工具能帮助读者更有效地学习和使用Python;基础和进阶用法能让读者对Python的用法有一些基本的认知;面向对象编程可以让读者了解一些基础的设计模式。接下来,本书介绍了一些关键的Python模块,这些模块包括Python标准库中的自带模块,以及NumPy、Matplotlib、SciPy、Pandas等最常用的模块。这些模块提供了强大的功能:标准库模块提供了处理编程常见问题的工具,NumPy模块提供了科学计算的基础类型数组,Matplotlib模块可以对数据进行可视化,SciPy模块可以进行概率、线性代数等的操作,而Pandas模块则提供了数据分析的基本功能。最后,本书详细讲解了两个用Python进行数据分析与机器学习编程的实例,通过这两个例子,读者可以了解数据分析和机器学习的一些基本流程。本书基于学习笔记而来,内容更贴近实际,例子也简单易懂。除了介绍Python的用法,本书还加入了很多原理上的解释,并辅以实例进行说明。因此,与其他Python书籍相比,本书不仅具有知其然的功能,还具有知其所以然的特点,从而能更好地帮助Python初学者进行自学。本书使用Python 3版本。考虑到书中涉及模块的功能可能会随版本更新而改变,因此,本书主要介绍各个模块的核心功能,对于一些细节用法不做过多介绍。特别地,结合我学习工作以来遇到的实际情况,虽然Python 2已经不再被维护,但一些企业和项目由于历史原因仍然保留了许多用Python 2编写的代码。为了方便广大读者在实际工作学习中阅读和运维基于Python 2的代码,本书将Python 2与Python 3的一些核心区别标注出来,以便读者掌握。本书配备有全套案例数据集、源代码,可通过扫描关注机械工业出版社计算机分社官方微信公众号IT有得聊,回复XXXXX即可获取。致谢本书基于很多资料和知识整理汇集而成,因此,我不可能完全统计出所有对本书的内容做出贡献的人士。在这里,我向所有贡献者们致以最诚挚的谢意。我要感谢我的家人,他们默默的支持,是我最坚实的后盾。我要感谢我的导师张长水教授,他严谨的教导,是我终生受益的财富。我要感谢我的朋友蒋楠、胡捷、王磊和潘伟燊,没有他们的真诚鼓励,我也不会坚持记完我的笔记。我还要感谢机工社的编辑王斌(IT大公鸡),有了他的鼎力相助,才有了这本书的成型与出版。机缘巧合促成了这本书的诞生,这也必将成为我一生中最宝贵的经历。非常希望本书能够对正踏上Python学习之路的朋友有所帮助!李金 2022.3.27
李金,清华自动化系硕士,阿里巴巴负责广告推荐的算法专家,知乎达人,其在知乎上的高分问答如何系统地自学 Python?阅读量达4000万,在Github上的中文python笔记也广受国内外读者好评。
第1章 初识Python11.1 人生苦短,我用Python11.1.1 Python简介11.1.2 版本的选择21.2 安装Python环境21.2.1 集成开发环境:Anaconda21.2.2 第一行Python代码31.3 使用Python工具41.3.1 IPython解释器41.3.2 代码的运行模式:解释器模式与脚本模式61.3.3 学习工具:Jupyter Notebook81.4 本章学习笔记9第2章 Python基础102.1 基础语法简介102.2 数据类型162.2.1 数字162.2.2 字符串202.2.3 索引与分片272.2.4 列表292.2.5 元组342.2.6 可变与不可变类型362.2.7 字典372.2.8 集合与不可变集合412.2.9 赋值机制442.3 判断与循环492.3.1 判断492.3.2 循环532.4 函数与模块582.4.1 函数582.4.2 模块612.5 异常与警告652.5.1 异常652.5.2 警告702.6 文件读写712.6.1 读文件712.6.2 写文件722.7 内置函数742.7.1 数字相关的内置函数742.7.2 序列相关的内置函数752.7.3 其他内置函数762.8 本章学习笔记76第3章 Python进阶803.1 函数进阶803.1.1 函数参数与返回值803.1.2 高阶函数823.1.3 map()函数和filter()函数833.1.4 Lambda表达式843.1.5 关键字global853.1.6 函数的递归863.2 迭代器与生成器873.2.1 迭代器873.2.2 生成器913.3 装饰器933.3.1 装饰器的引入933.3.2 装饰器的用法953.4 上下文管理器与with语句983.4.1 上下文管理器的引入983.4.2 上下文管理器的原理993.5 变量作用域1033.6 本章学习笔记105第4章 Python面向对象编程1074.1 面向对象简介1074.2 自定义类型1094.3 方法与属性1114.4 继承与复用1154.5 公有、私有、特殊以及静态的方法与属性1184.6 多重继承1204.7 本章学习笔记121第5章 Python标准库1235.1 系统相关:sys模块1235.2 与操作系统进行交互:os模块1255.3 正则表达式:re模块1285.4 日期时间相关:datetime模块1325.5 读写JSON数据:json模块1345.6 文件模式匹配:glob模块1375.7 高级文件操作:shutil模块1385.8 数学:math模块1395.9 随机数:random模块1405.10 路径操作:pathlib模块1415.11 网址URL相关:urllib模块1425.12 实例:使用标准库实现桌面墙纸下载1435.13 本章学习笔记146第6章 Python科学计算基础:NumPy模块1496.1 NumPy模块简介1496.2 数组基础1506.2.1 数组的引入1506.2.2 数组的属性1516.2.3 数组的类型1526.2.4 数组的生成1556.2.5 数组的索引1576.2.6 数组的迭代1596.3 数组操作1606.3.1 数值相关的数组操作1606.3.2 形状相关的数组操作1636.3.3 数组的连接操作1686.3.4 数组的四则运算和点乘1716.3.5 数组的数学操作1726.3.6 数组的比较和逻辑操作1736.4 数组广播机制1746.5 数组索引进阶1766.5.1 数组的基础索引1766.5.2 数组的高级索引1786.6 数组读写1806.6.1 数组的读取1806.6.2 数组的写入1816.6.3 数组的二进制读写1826.7 随机数组1836.8 实例:使用NumPy实现K近邻查找1846.9 本章学习笔记185第7章 Python数据可视化:Matplotlib模块1877.1 Matplotlib模块简介1877.2 基于函数的可视化操作1877.2.1 plt.plot()函数的使用1877.2.2 图与子图1937.3 基于对象的可视化操作1947.4 图像中的文本处理1957.5 实例:基于Matplotlib的三角函数可视化1977.6 本章学习笔记200第8章 Python科学计算进阶:SciPy模块2028.1 SciPy模块简介2028.2 插值模块:scipy.interpolate2028.3 概率统计模块:scipy.stats2068.3.1 基本统计量2068.3.2 概率分布2068.4 优化模块:scipy.optimize2148.4.1 数据拟合2148.4.2 值优化2188.4.3 方程求根2208.5 线性代数模块:scipy.linalg2218.6 实例:基于SciPy的主成分分析2278.7 本章学习笔记230第9章 Python数据分析基础:Pandas模块2329.1 Pandas模块简介2329.2 一维数据结构:Series对象2329.2.1 Series对象的生成2339.2.2 Series对象的使用2359.3 二维数据结构:DataFrame对象2389.3.1 DataFrame对象的生成2389.3.2 DataFrame对象的使用2409.4 Pandas对象的索引2429.4.1 基于中括号的索引和切片2429.4.2 基于位置和标记的高级索引2459.5 缺失值的处理2489.6 数据的读写2509.7 实例:基于Pandas的期货数据分析2519.8 本章学习笔记256第10章 Python案例1:中文小说分析25710.1 数据预处理25710.2 数据统计25910.3 数据建模26310.4 效果分析26510.5 本章学习笔记271第11章 Python案例2:手写数字分析27311.1 数据的获取与处理27311.2 数据建模和效果分析27511.3 本章学习笔记277