自学Python:编程基础、科学计算及数据分析(第2版)
上QQ阅读APP看书,第一时间看更新

前言

“人生苦短,我用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