从入门到精通,给你推荐几本 Python 与数据科学好书。
需求
最近读者数量增长了不少。有许多新读者留言,说自己想入门 Python 与数据科学,希望我能够推荐一些教材书籍。
老读者们都知道,我经常会在教程末尾的“资源”或者“小结”章节,推荐相关的书目。我推荐的书籍,有个特点,就是写得简明易懂,适合文科生阅读。
那种一打开,公式便随处可见的书,也许内容质量非常高,但确实不适合文科生的入门级阅读。许多人就是这样被吓跑,然后干脆放弃了的。
所以,如果你是专业人士,看完之后,按捺不住想要发飙:
为什么没有提到XXX和XXX,那才是经典!你还好意思自称老师,到底懂不懂行?!
请保持理智,注重文明举止,多一份同理心给文科生们。
谢谢合作!
考虑到这些书籍推荐散落各处,新读者一篇篇翻找起来不是很方便,我这里把它们汇总一下。同时,我也加入了一些新的书籍,有的只是之前没有提到,有的却甚至新到还没出版的地步。
下面我分成 Python,数据科学,机器学习这几个部分,分别给你谈一谈。
Python
第一本,当然是《笨办法学 Python 》(Learn Python the Hard Way)。
我在《如何高效学Python?》一文里,隆重推荐过它。
书名起成这样,居然还能卖得出去,实在是营销界的奇迹啊!
能卖出去,想必不是因为书名吸引人。
吸引人的书名应该叫做《XX天 Python 从入门到精通》,《X天学会数据科学》,或者《深度学习24小时教程》……
能有这么多人购买学习,说明了它的口碑效应相当好。
这本书,最适合自学入门。如同《新概念英语》,它采用螺旋上升、以练促学、温故知新的形式来讲解和辅导你练习。
你得相信口碑的力量。
别人能拿它学会,你也行。
若购买中文版,请选择最新的 Python 3 版本,链接在这里。
第二本,是我这学期在北得克萨斯大学(University of North Texas)讲授的《面向信息系统的计算方法》(Computational Methods for Information Systems)课程的教材之一。
书名叫做:“Think Python: How to Think Like a Computer Scientist”,我用的是第二版。
你对这个书名,不应该陌生。因为我在《如何高效学Python?》一文中,为你介绍过这本书和传奇 Python MOOC "Programming for Everybody" 之间的关联。
你可以点击链接查看具体说明。
经过这一学期的教学实践,我确认这本书不愧为经典教材。配合上翻转教学的形式,以及 Google Colab 的环境支持,学生们上手 Python 特别迅速。
这本书的中文版叫做《像计算机科学家一样思考Python》,购买链接在这里。
数据科学
第三本书,是数据科学的入门读物,也是我本学期课程的另一本指定教材。
书名叫做:“Data Science from Scratch”。
该书的特点,可以这样概括:
就是不教你调包。
大家都知道,现在的数据科学工具丰富。许多时候,你只要知道如何调用一个第三方软件包,就可以轻松完成某项任务,例如下载数据、绘图,甚至是机器学习建模。
但是这本书偏反其道而行之,从最简单问题入手,让你从头实现功能。
这样一来,你就不止知其然,还充分明白其所以然。
为了调动你的兴趣,书中选择的样例,都是非常实用而有趣的。虽然你的代码比较基本,但是麻雀虽小五脏俱全,成就感一点也不会差。
因为成书时间比较早,这本书原始代码,都是用 Python 2 写成的。因此在今天的 Python 3 环境下运行,会有差别。
好在作者非常贴心,从头更新了所有的代码,把 Python 3 版本发布在了 Github 上面。
你可以访问这个链接,查看与尝试最新版代码。
中译本名称为《数据科学入门》,链接在这里。
第四本,是关于 Python 数据框 Pandas 的。如果你用 Python 做数据分析,不会 Pandas 也能完成很多任务,只是会更痛苦一些。
我曾经有多篇教程,展示了 Pandas 的功能强大。简单的一两行代码,就可以让你从原始数据中提炼与绘制出这样的统计图形来。
还记得吧?上图来自《如何用 Python 和 Pandas 分析犯罪记录开放数据?》一文。要注意复习哦。
这本书的名字叫做 “Python for Data Analysis”。
作者是 Wes McKinney ,Pandas 项目的创始人。
软件包的创造者亲自写书,权威程度可想而知。
这本书第一版就很畅销,后来在2017年又推出了使用 Python 3 的第二版。
中译本目前还只有第一版的,链接在这里。不过 Wes McKinney 在个人主页说第二版就快要面世了。
机器学习
第五本书,是 Aurélien Géron 的 “Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems”。
这本书简直就是个教材出版界的奇迹。
发行量咱就不提了,就连放在 Github 上 的配套代码,居然都获得了超过 14000 星。
这本书同时涉及了经典机器学习和深度神经网络,适合你从零基础了解到最新前沿内容。
中文译版叫做《机器学习实战:基于Scikit-Learn和TensorFlow》。链接在这里。
且慢下单!
还记得我前面说的那句话吗?
有的甚至新到还没出版的地步。
这本书的第二版,快要上市了。
书名更新为 "Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems"。
其实你看,第二版的书名里面,也就是加了个 Keras 。但是如果你阅读我的那篇《如何用 Python 和 Tensorflow 2.0 神经网络分类表格数据?》比较仔细,应该不难理解这意味着什么。
由于 Keras 已经成了 Tensorflow 2.0 中**深度整合且官方推荐的高阶 API **,所以这本书实际上讲的,就是 Tensorflow 2.0 。
作者也表示说,可能需要跟出版社沟通,看要不要在封面上显著标识一下 Tensorflow 2.0 字样。
不过,第二版的出版时间,预定是2019年8月。
咱们还真得等些日子。
等待的这些日子,就不能学习 Tensorflow 2.0 了吗?
当然不是。
再次强调,现在你学 Keras ,就是学习 Tensorflow 2.0 的最佳铺垫。
第六本书,我不止一次推荐过,叫做“Deep Learning with Python”。书名很霸气,但实际上讲的,就是 Keras 这一个框架。
豆瓣评分,高达9.7。
这评分,看着跟刷出来的似的。
但实际上,名至实归。
又一次,教材作者,就是 Keras 框架作者本人。
这本书,不仅教你 Keras 的用法,更深入浅出地讲解了深度学习的底层逻辑。尤其是表征(representation)的概念,讲得真是透彻。
读它之前,我原本就已经学过了 Andrew Ng 的深度学习课程,还拿到了证书。但可以说,看完了这本书后,我才对深度学习真正有了清晰的感觉。
这本书的中译本,在这个链接。
第七本,咱们得提一下 PyTorch 了。
深度学习框架领域的竞争结果,基本上明朗化了。
一方面,是 Google 阵营的 Tensorflow 2.0;另一方面,就是 Facebook 阵营的 Pytorch。
现在你要想入门,这两边你恐怕得挑一个。主流的学术论文,基本上都是用这两种框架来实现的。想要复现实验结果,学习设计思路,你绕不开它们。
PyTorch 的1.0正式版本出现不久。相关的教材,还不完备。
这本书的名称是“Beginner"s Guide To Using PyTorch For Deep Learning”,确实,就是给初学者入门预备的。
作者 Ian Pointer 已经宣称,书中不仅会有 PyTorch 的基础内容,而且一直还会延伸到图像领域 ResNet 架构迁移学习,甚至是 BERT 与 GPT-2 这样的自然语言处理最新研究成果。
想想吧,一书在手,从入门到专业全方位覆盖。
可惜的是,根据亚马逊官网显示,这本书的上市时间,要等到2019年11月份。
看来,好的作品,都需要时间来打磨啊。
其他
哦,差点儿忘了,我自己也写了一本书,名字叫做《文科生数据科学上手指南》,包含了我对自己系列数据科学教程的梳理。现在网上免费开放获取。
你可以点击这个链接(http://t.cn/EvMHAyo)查看。
小结
本文给你推荐了若干本教材,适合文科生初学者入门 Python 与数据科学。这些书籍的特点是:
门槛很低,但是天花板足够高。
例如其中提到的 BERT 和 GPT-2 等,都是目前前沿的领域研究成果。
希望读过本文之后,能对你的学习有帮助。
祝深度学习愉快!
延伸阅读
你可能也会对以下话题感兴趣。点击链接就可以查看。
如何高效学 Python ?
如何用 Python 和 fast.ai 做图像深度迁移学习?
如何用 Python 和深度迁移学习做文本分类?
如何用 Python 和 BERT 做中文文本二元分类?
如何用 Python 和 Tensorflow 2.0 神经网络分类表格数据?
喜欢请点赞和打赏。还可以微信关注和置顶我的公众号“玉树芝兰”(nkwangshuyi)。
如果你对 Python 与数据科学感兴趣,不妨阅读我的系列教程索引贴《如何高效入门数据科学?》,里面还有更多的有趣问题及解法。
题图:Photo by Sharon McCutcheon on Unsplash