Python 自學 推薦

选技术书有两个诀窍,一是看市场是否认可,二是看作者是否NB

市场认可的书自然是卖的的最好的,京东上搜一下python,爆款书都排在前面(广告除外)。

Python 自學 推薦

爆款技术书内容质量可能不是最好的,但一定是最适合入门者学习的,而且架构合理,错误率低,版本更新快。

作者牛逼,书自然也不会差到哪去。比如说《利用Python进行数据分析》的作者Wes McKinney,他是开源分析库pandas的主要作者;还有《Think Python》的作者Allen B. Downey,Think系列大牛;其他像《effctive python》、《python cookbook》的作者都是python社区的重量级人物。这些大佬的书值得一读。

Python 自學 推薦
Think Python作者

python的自学书籍非常多,涉及基础入门、web开发、机器学习、数据科学、自动化测试、量化交易等各个门类,新手很容易陷入到处是书却无书可看的局面。

所以我们要明白自己学习python出于什么目的,处于哪个阶段,再选择合适的书看。

如果想少走弯路,不妨花个早餐钱看看视频课程。自制力比较差的小伙伴,跟着老师把python基础走一遍,效率非常高。

《Python编程,从入门到实践》

Python 自學 推薦

这应该是世界上最畅销的Python编程书,没有之一。英文名叫作《Python crash course》,作者Eric Matthes是一名高中老师,正是有着丰富的教学经验才会写出这样深得人心的书。

该书的特点是一半基础(语法知识),一半游戏(案例练习),所谓寓教于乐,通过案例练习的方式巩固基础知识。这里的练习和高中数学枯燥的课后练习可不一样,作者把代码放到一个个场景里,学习者在写个小游戏的过程中就把语法掌握了。

看了本书的目录,基本把python的核心语法都讲到了,学完之后可以搞点小事情,比如数据分析、可视化编程、web开发等。

《Python学习手册》

Python 自學 推薦

这是一本老少咸宜,高手与小白都可以看的一本书,英文名叫作《Learning Python》,作者Mark Lutz是一位Python培训讲师,也是Python社区的元老级贡献者。可想而知该书是一本百科全书式的python宝典。

该书已经出到第五版,对语法的讲解非常详细,而且有丰富的插图和示例代码。详细有时候意味着啰嗦,很多人觉得作者过于琐碎,但其实不太明白作者的用心良苦,想要学好python还真得细细琢磨语法。

当然语法书需要配合大量的练习,切忌盲目啃书,敲代码才会理解更深。

本书的主要内容包括:python百科小常识、python历史、命令行、IDE、python语法基础、python模块、大量的练习。

如果你真心想做一位python开发,该书是不错的起点。

《笨方法学Python》

Python 自學 推薦

这本书体现的是一种学习python的思维,不对,应该是学习任何一种编程语言的方法论。作者鼓励的是practice、practice、practice,这或许真的是学习编程的唯一捷径。

书里面一步步引导初学者从下载软件开始,到安装、配置,写出第一个hello world,最后实现一款有用的小软件或者有趣的小游戏,最终学会并喜欢上python。

我也是看这本书入门python的,捧着它敲了一个月的代码。

给大家看看作者的自述,很有意思:

Python 自學 推薦

Python进阶书(适合有基础的)

《流畅的python》

Python 自學 推薦

豆瓣9.4分!这本书不是通俗意义上的python语法书,而是教你写出更简洁、更规范、更聪明的python代码。

内容方面深入探讨了Python语言的高级用法,涵盖数据结构、Python风格的对象、并行与并发,以及元编程等不同的方面。作者Luciano Ramalho是一个几十年的骨灰级python程序员,既做开发,也教编程课。

Python 自學 推薦

《Effective Python:编写高质量Python代码的59个有效方法》

Python 自學 推薦

这本书讲的并不是Python基础编程,而是Python的规范和技巧,也就是pythonic。

pythonic简单的翻译就是python风格。pythonic code,就是说写代码要带有浓厚的python规范和python风格。而Python的代码样式规范称之为PEP 8规范,往大了说,遵守PEP 8是成为一个优秀python程序员的必备条件。

书中有59个Python编程的技巧和捷径,并用真实代码示例进行了解释。当然阅读起来会有些门槛,适合那些有基础的童鞋。

Python 自學 推薦

《Python Cookbook》

Python 自學 推薦

cookbook系列一向是精品,python这本也不例外,适合有基础的朋友看,里面讲了很多python编程的奇技淫巧,对资深开发者来说也是可以长读的。

该书介绍了Python应用在各个领域中的很多使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字、日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测试、调试以及异常,C语言扩展等。

以上推荐的都是比较经典的python书,大家看的时候选择其中一两本即可,因为知识点都是通的。

对于小白来说自学也不是件容易的事,需要花相当的时间去适应python的语法逻辑,而且要坚持亲手敲代码,不断练习。

我这边也整理过一些开源的Python学习资源,大家可以看看。

一、起因

每年都有若干个朋友同事咨询我,他们想学习Python,学好Python,希望我能分享分享经验技术。

我自己在python开发上有一定积累、平时也喜欢分享一些技术知识。但是想回答这个问题,还真不容易。

因为 Python 涉及的知识内容还是比较多的,短时间内必然无法详述所知。我自己也比较希望分享的内容能对朋友们都有用,而不是说完即忘、听完即止。

入门类的介绍太粗浅,网络上各处也都有。

纯粹的知识讲解,那么基本只能讲一小块,毕竟Python的一小个分支内容,都可以出一整门课的内容来讲解。这样讲反不如直接在网络上寻找相关课程上,毕竟也是人家精心准备的。

于是往往就回复朋友们,让他们多读书,并推荐相关书籍读。

但事后细想,这就像教武功只教招式,却不告诉心法内功的修炼方式。可能可以学个一招半式,但无法精进。要成为大师,应该内外兼修。

故而,也要修炼 学习的内功心法,即能快速掌握一项技能知识的方法与能力。

所以写下本篇文章,既分享书籍,也配合分享一套自学python的方法论,帮助小伙伴后续更快地学习、进阶。

毕竟授人以鱼不如授人以渔

Python 自學 推薦

我是有这个信心分享自学方法,因为我自己也是一路自学而来的。

我是非IT科班出身,本科金融、研究生数学,Python等技术均是纯自学的。自学的成果也算良好,硕士一毕业便在香港从事量化开发工作,业余时间分享的知乎,如今也有9000余人关注。

有这个成果,大概可归因于:兴趣 + 工作需求 + 良好的学习方法

  1. 兴趣是最好的老师,让我愿意不断地接触新事物、新知识。
  2. 工作需求则能让我保持长期学习动力,因为学习的成果能很快在工作中应用,有持续的正向反馈才能走得更远
  3. 良好的学习方法则是让我更加高效地吸收知识。时间就是金钱、效率就是生命,学得快,才能用得快,用得多也就反馈更多,总结更多知识,进一步刺激学习,形成一套良性循环。

而本文重点将分享我的一套Python技术学习方法论,提供一套在学习python路上的参考指南。

前半部分以重点阐述学习方法,后半部分则分享对应的学习路径、与优质书籍推荐。

期待得到各位收藏与点评。

Python 自學 推薦

在介绍学习方法前,先简单介绍一下我们的学习对象:Python。

Python是一种流行的编程语言。它由Guido van Rossum创建,于1991年发布。Python社区二十几年来蓬勃发展,在很多业务领域上形成了强大的生态,如 Web开发、网络编程、自动化运维、Linux系统管理、数据分析、科学计算、人工智能、机器学习等,以至于不少初创公司都采用Python来覆盖大部分技术需求。

Python 知名应用包括但不限于 Youtube、Reddit、Dropbox、豆瓣以及我正在写作的知乎。

Python 优点

Python是公认的效率极高的工具性语言,其优点包括:

  1. 易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  2. 语法简明:Python语言力求代码简洁、优美,相对于其他编程语言,它注重的是如何解决问题而不是编程语言的语法和结构。阅读一段良好的Python程序就感觉像是在读英语一样。
  3. 互动模式:Python是一门解释性脚本语言,可以直接从源代码运行程序,REPL特性(read eval print loop)使程序写起来非常方便,可以从终端输入执行代码并获得结果的语言,这对于数据分析这类需要在开发过程中即刻看到程序结果的业务是十分便利的。
  4. 丰富强大的库:Python语言号称自带电池(BatteryIncluded),寓意是Python语言的类库非常的全面,包含了解决各种问题的类库。任何功能几乎都可以在标准库或开源项目的第三方库中找到
  5. 跨平台:Python语言是开源的,其程序可以很快地移植到Linux、Macos、Windows等系统。
  6. 可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  7. 开发效率高:Python的优点是相辅相成的,因为语法简明、第三方类库强大,所以可以用短短几行即可实现业务功能。实现相同的功能,Python代码的文件往往只有C、C++和Java代码的1/5~1/3。开发效率高的语言,能够更好得满足互联网快速迭代的需求,因此,Python语言在互联网公司使用非常广泛。
  8. 其他:可嵌入、面向对象、胶水语言

Python 缺点

任何事物都不可能是完美的,Python也是。我们也需要理解Python的劣势,以更好地在我们工作中进行技术选型。

Python较为明显的劣势有:

  1. 执行速度不够快:动态语言的硬伤自然就是慢,当然python也对这方面有所弥补,那就是对效率敏感的地方可以用C重写,如第三方库numpy
  2. 运行时报错:语法错误都在运行时抛出,也就没有编译期的静态检查来排错
  3. 无类型声明:无法建立约束易导致代码质量低,在大型项目中使用有较高风险
  4. GIL限制并发:无法有效利用多线程,导致多线程的cpu效率提升不大
  5. 版本兼容:Python2和python3两个不兼容的版本

但瑕不掩瑜,Python 依然是一门出色的语言,在中小型业务上依旧游刃有余,现在学习它还是十分超值的。


三、Python 学习方法

话归正题,我们开始介绍 自学Python技术 的方法。

任何技术的打磨,都需要吸收大量的知识进行积累(输入),并在长期实践中进行完善(输出)。

Python 也不例外。

对于自学,最主要的途径无外乎以下几条

  1. 视频:入门、大概认知
  2. 书籍:系统性学习知识框架
  3. 技术文档:学习成熟的第三方工具
  4. 技术论坛:技术实践与技巧,是知识体系的精华补充
  5. 业务实践:总结经验,反哺知识体系
  6. 源代码:深度理解,可从底层进行改造技术框架以满足需求

以上这几条在自学的过程中都会用到,不过在不同阶段侧重不同。

1. 视频:入门、学习概念性知识

在入门阶段,看视频教程是有必要的。因为入门时大概率眼前是一片茫然的,啥都不懂,这时候配合看一些视频教程,可以跟着操作,很快就能学习到怎么安装环境、使用Python和相关的库,用什么样的编辑器(IDE)来写代码等等。入门具体应用场景,如数据分析,也一样,你可以跟着视频,一步一步走写代码看结果,从读入数据、分析数据、画图、生成报告,做完以后也就都大概懂了。

前期不用过于强调自己知识体系的完备性,保护好自己的兴趣和求知欲反而更重要。

但看视频就跟老师上课一样,所有东西过一遍,往往学了个大概,对基本概念不甚明确,没有书里详尽,会导致基础不扎实。 所以建议看完视频,对技术有一个全局的认识以后,便可以开始读书。

2. 读书:系统性学习与建立知识框架

单位时间内书的信息密度比视频大的多,而且读书可以自己控制速度,简单的地方可以一扫而过,难的地方就放慢速度,读起来更有效率。

相比于看视频而言,看书需要主动、需要投入更如精力和毅力,但看书吸收效率高。 所以

  • 如果想要 快速接受知识、想大概了解、不求专业,那么就看视频学习。
  • 如果想要扎实记住知识,想学得专业、深入、系统,那么看书学习。

读书方法是本文的重点,后面将详细介绍我的心得和相关书籍推荐。

3. 技术文档:学习成熟的第三方工具与技术实践技巧

通常根据业务类型,你需要对相应的主流的工具框架进行学习,如对于数据分析领域而言,numpy、pandas就是必学。

大量数据书籍中都会有介绍这类工具的使用,但是到了实践中的时候,你会发现书上的内容还是比较有限的,想要全面了解,那么阅读这些工具的文档是必不可少的,如果文档上依然解释的有限,那么放心,你大概率不是第一个遇到这个问题的,可以充分利用Google进行搜索,各个论坛上基本都有相关的答案。

4. 技术论坛:技术实践与技巧,是知识体系的精华补充

编程这个技术,是公认的最适合自学的一门技术。高质量的学习资料很多都是免费开源的,并且很多高质量项目最关键的源代码也是公开的;同时遇到问题也是最容易得到解决的,因为同行程序员们都是电脑前活动的动物,而且喜好分享(炫耀~)技术知识,你的问题大概率各种论坛、博客上已有发表,且下面有一堆资深老鸟提供解答方案,99%的问题几乎都是如此。

如果不幸,遇到了1%没有人问过的问题,那么也不必担心,详细地把这个问题描述好,发到问答网站上,不久一定会有热心小伙伴提供解决方案,毕竟这又是一次难得的炫技机会。

特别的,如果要在社区里进行提问,非常推荐先阅读一遍《提问的智慧》,能够提高问题得到又快又好的回答的概率。个人认为是技术学习的必读文章之一。

5. 业务实践:总结经验,反哺知识体

实践是检验整理的唯一标准,同时,实践的过程中,你会明白所学的技术该用在哪,也会逐渐意识到自己的不足,知道光会用技术,和用好技术是两码子事,从而逐步去完善自己的技术体系。

6. 源代码:深度理解,可从底层进行改造技术框架以满足需求

当业务更加深入的时候,你会需要对原有框架进行改造、甚至自建一套框架,那么此时去阅读阅读经典项目的源代码就非常有必要了,能偷师学习最精华的架构设计与功能实现。


四、Python 读书方法论:飞轮读书法

其中,在各个知识学习的途径里,我尤为看重书籍阅读。

读书的方法,尤为推荐读书飞轮这套理论,作者是 亚马逊工程师 阿莱克西斯 @阿莱克西斯,文章链接

文章的核心观点为:多读书、重阅读速度而轻练习。很像2000年前诸葛丞相的那套“观其大略、不求甚解”。

我个人对这套方法论是非常认同、也极其受用的。我个人研究生毕业4年多时间内,应该买了不下六、七百本书,堆满了书房。

关于什么是读书的飞轮,如何转动读书飞轮,《书魔的学习方法》原文中有较详细地展开说明。

本文的这个章节,将摘录部分原文,并结合我个人对其的理解进行简要阐述

另外备注一下:读书的飞轮适合 技术入门后、且有一定实践积累的阶段 开始使用。入门时还是要仔仔细细看书,打好基础、打好基础、打好基础。

1. 什么是读书的飞轮

读书的飞轮效应 指的是技术书会越读越快

其理论基础在于:

  • 人的大脑是重思考而轻记忆的。人的记忆是有限的,就好比电脑有限的内存甚至cpu的cache,很多时候我们只要记住知识索引即可,而不必“背课文”。书,资料,文章,都是我们知识数据库的硬盘,而我们只要记住在哪里能找到自己曾经理解过的东西,把这些索引知识记录在我们的大脑的cache里即可。
  • 知识是可以触类旁通的,抽象总结的。这样就使得我们可以记住一些知识的本质,然后很容易的在不同应用场景,推理出相关的知识。当知识可以在你的大脑里形成联系网络,那么即使你忘记了某部分细节,你也可以很容易利用你的其他知识推理出“由于A,B,C,所以这个D应该是这样来的”。这样的结构化记忆模式将更佳有效。
  • 推理和想象能力越强,需要记忆的东西就越少。锻炼对知识的想象力,对未知的推理抽象能力,当你理解一个东西是怎么来的,那么就算你忘记了它,那么你也可以在需要的时候自己把它推理出来。

进而去解决我们学习的终极矛盾 —— 用“有限的大脑去记录无限的知识”

所以飞轮式读书法非常强调 快速读书、海量读书,重阅读与思考,轻练习与实践。其原因也不难理解:

  • 大家读小说会比读技术书快很多,因为读小说不需要什么预备知识就能读懂。而技术书都需要预备知识储备(比如理解B需要理解A),和“理解储备”(即同一个类似的东西我已经在其他地方理解过一次了,所以对于当前的东西则触类旁通)。而你读过的书越多,造成你理解困难的点就越少。
  • 读书的飞轮把读书的目的变为更快攻克/理解更多的知识,找出知识间的联系从而更加效率的掌握新的知识,而不在于能立刻用现在学到的知识干什么。如果一个人的知识状态是N个知识,那么你想增加一个知识点,让N+1,只能参考你已有的知识N和利用你的脑子。大部分人的脑子没法变得更聪明,那么只能努力让自己的N越大,你就越能更快得让N+1,这,就是读书的飞轮。
  • 读书飞轮的效果,不在于一朝一夕你学会了什么,能做什么,吃透了什么。而在于大量的阅读的一年一年的积累,创造让别人无法建立的知识壁垒去获得别人(同等智力)无法获得的理解力,推理力,知识联系力,从而提高自己学习,或者知识的效率和速度。

2. 如何转动读书的飞轮:

如何才能够让飞轮转起来,读更多的书?

这里总结了8条Tips:

  1. 明确读书目的为打标记:阅读大部分技术书籍的目标不是“记住”,而是看懂和打标记,这样就可以将碎片时间都利用起来了,有时间就拿出来看看。以后需要用到了,能很快找到在“哪里看到过”,并轻松的把忘记的东西拾起来。
  2. 不要在意“记不住”:担心记不住而反复停留在一本书或者一个知识点,真正“有用的东西”是会不断重复出现在你眼前,要么工作中需要,要么这些知识被同一类的书再次提到,从另一种角度被描述,要么让你感觉“这个东西跟我学过的那个有点像”。这些都是在一次加深理解这些知识的联系机会。
  3. 不要在意“看不懂”:如果某个知识点你难以理解,回想自己一两年的积累阅读里都没找到灵感来解惑,那要么是因为这个东西不重要,要么就是因为你还没有积累够阅读量与思考。读书的飞轮的另一个威力就是通过增加新的知识来理解目前不理解的问题,而不是逼着自己一定要在知识不完全的情况下吃透一本书。思索到死都想不出来的时候,还是let it go,然后去看别的。
  4. 不要在意“忘掉了”:消除忘记知识的恐惧。知识总会更新,也有旧的知识会落伍,有用的知识会被反复使用和练习,要允许过时的知识被渐渐遗忘。知识是否有用,取决于未来。
  5. 选择性阅读:知识的价值是不同的,我们要判断重要性而选择性阅读,如果书的部分内容对整体的理解不影响,且不是当前业务中需要用到的,那么完全可以直接跳过。判断是否跳过的关键是:这段知识是否能成为我理解其他重要知识的踏脚石。
  6. 重阅读、轻练习:如果练习的目的是帮助理解,验证猜想,去探索书里没有讲明白的,那么得应该去做。如果练习的目的是记住API,记住细节,那么不建议去做。Once again,知识是否有用,取决于未来。去强化记忆无用的知识是对时间资源的浪费。
  7. 锻炼推理和想象能力:不要强记是什么,而要去理解“为什么”,锻炼用已有的知识,推理出新学的知识的能力,让理解水道渠成。理解新的知识产生的逻辑过程,或者说推理过程,有助于我们修正或者加强自己的逻辑推理思考能力;而推理能力越强,把知识联系记忆的几率越高。
  8. 主动建立你自己的知识网络:多总结,让知识关联起来,用以前学到的知识去撬动新知识,在越学越多的过程中在脑海中建立一个知识图谱。可以通过主动建立脑图笔记、撰写博文等方式主动让自己搭建起知识框架。

以上,就是对飞轮读书法的一个大概说明。

有了这个“武功心法”后,相信你学习“武功招式”应该能更加得心应手。


五、Python 书籍推荐

那么我们正式进入Python的读书学习。

读书,自然要读好书。

这里我把自己阅读过的Python好书分成三部分(1. 原理 2. 数据分析 3. 工程开发),每个部分精选5、6本书进行分享。

分享的书籍将以 由浅入深、循序渐进 为原则进行推荐,让大家逐步深入各个模块的知识学习。

另外,大部分都是豆瓣高分书籍,推荐理由豆瓣上也有详细阐述,我这里就简单提上几嘴,部分内容直接引用豆瓣精选书评。


1. 原理

最开始学习Python时,就必须要学习它的原理。

学习路径:从基础语法,到高级语言特性,到最佳实践,如果有时间再翻源码学习

《Python编程 从入门到实践》第2版

  • 豆瓣评分:9.2
  • 豆瓣链接

基本上,当要入门一项学科知识前,都必须有一个大概的框架,这样学起来效率会比较高。

本书是面向初学者的Python编程实用指南,也是目前豆瓣上python书籍评分最高的书籍之一。书本的理论和实践恰到好处,行文逻辑流畅不跳跃,内容精简没有艰深晦涩的概念,非常适合入门,零基础小伙伴读入门系书籍要慢慢来,最重要的目的是培养兴趣。

边看边码代码,看完这本书之后,基本就是入门了。如果追求快速落地应用,其实也可以快速调到数据分析数据学习进行实际案例分析。此时,你会编写简单脚本解决问题。

《流畅的Python》

  • 豆瓣评分:9.4
  • 豆瓣链接

本书应该是深入理解Python原理与语法的最好书籍之一,是极佳的 Python 进阶类书目。书本聚焦在数据模型、数据结构、函数对象、面向对象、控制流程与元编程等话题上,关注 Python 对象的构造以及语言内部的特性细节,目的是让读者写出更地道、简洁高效、可读易用的代码。

全书 600 多页,洋洋洒洒,旁征博引,内容充实到让人应接不暇,让人时不时就产生一种“又学到了新知识”的感觉,以及一种“哦我想进一步学习 xxx”的求知欲望。

Python进阶,必买必学!

《Python Cookbook》第3版

  • 豆瓣评分:9.4
  • 豆瓣链接

本书和《流畅的Python》一样,也是深入理解Python涉及的高级语法和特性书籍,文字描写相对于《流畅的Python》会更晦涩一些,但在Python类机制与原理上阐述得更深入,适合作为前者阅读的辅助或补充书籍。

同样是Python进阶,必买必学!

《Effective Python——编写高质量 Python 代码的 90 个有效方法》

  • 豆瓣评分:9.0
  • 豆瓣链接

学好了基础原理,动手时也要了解了解最佳实践。

本书汇聚了90条优秀实践开发技巧,可以帮我们掌握Pythonic编程范式,充分发挥出Python语言的强大功能,写出健壮而高效的代码。

《编写高质量代码:改善Python程序的91个建议》

  • 豆瓣评分:7.4
  • 豆瓣链接

与上书相似,不过是国人所写,额外添加了 设计模式、python内部机制的探讨,非常适合作为《Effective Python》一书的补充。

《Python源码剖析》

  • 豆瓣评分:8.8
  • 豆瓣链接
  • 购买链接-已绝版

如果读完《Python Cookbook》和《流畅的Python》还不过瘾,恭喜你,你可以去挑战、去吸收到Python的精髓 —— C语言

Python本质上是C语言编写的,《Python 源码剖析》是一本极好地讲解Python运行机制的书,书里用最基础的C语言解释Python的运行原理,你会感叹,原来这些Python神奇的功能,是这么实现的。

这本书需要C/C++功底。书中以CPython为研究对象,在C代码一级,深入细致地剖析了Python的实现。书中不仅包括了对大量Python内置对象的剖析,更将大量的篇幅用于对Python虚拟机及Python高级特性的剖析。通过此书,读者能够透彻地理解Python中的一般表达式、控制结构、异常机制、类机制、多线程机制、模块的动态加载机制、内存管理机制等核心技术的运行原理,同时,本书所揭示的动态语言的核心技术对于理解其他动态语言,如 Javascript、Ruby等也有较大的参考价值。

很推荐进阶后的小伙伴读这本书。因为书本旧,08年的,所以现在绝版了,基本只能看到电子版。但我当时看得很过瘾,于是一高兴,就花了近5倍价格,买了本正版二手书收藏,算是用实际行动做了推荐。


2. 数据分析

学习Python,大部分人都是看中了其强大的数据分析能力,很多公司的业务也都有这方面的需求。

数据分析,核心包括获取数据、数据预处理、数据分析建模和数据结论输出4个步骤。

Python 自學 推薦
  1. 获取数据:数据化运营分析所需的数据需要经过特定授权从数据库或文件中得到。
  2. 数据预处理:在该过程中对数据进行质量检验、样本均衡、分类汇总、合并数据集、删除重复项、分区、排序、离散化、标准化、过滤变量、转置、查找转换、脱敏、转换、抽样、异常值和缺失值处理等。
  3. 数据分析建模:运用多种数据分析和挖掘方法,对数据进行分析建模。方法包括统计分析、OLAP分析、回归、聚类、分类、关联、异常检测、时间序列、协同过滤、主题模型、路径分析、漏斗分析等。
  4. 数据结论输出:数据结论的输出有多种方式,常见的方式是数据分析报告,另外还包括Excel统计结果、数据API输出、数据结果返回数据库

(引用自书籍《Python数据分析与数据化运营》第二版)

学习路径推荐:从数据分析,到机器学习,再到深度学习,并且结合业务实践,提高开发的熟练度

《利用Python进行数据分析》

  • 豆瓣评分:8.6
  • 豆瓣链接

数据分析入门必读

这本书是Pandas的模块作者写的书,曾是AQR Capital Management的定量分析师。除了pandas之外,作者对本书覆盖的iPython,NumPy,matpotlib等也都有着很深的理解。而本书的主要章节也是对这几个工具进行详尽介绍,用较为丰富的用例阐述其功能。这几个库基本是Python数据分析过程中不可或缺的。欲善其事,必先利器,这本书值得一个必看标签。

这本书我至今都带在身边的工具书之一。

看完这本书,你就应该有能力解决业务相关的数据分析问题

《机器学习实战——基于Scikit-Learn与TensorFlow》

  • 豆瓣评分:8.5
  • 豆瓣链接

本书分为机器学习和深度学习两部分。推荐机器学习部分,涵盖机器学习的基础理论知识和基本算法——从线性回归到随机森林等,帮助读者掌握Scikit-Learn的常用方法;深度学习建议阅读《Python深度学习》。对于机器学习的原理推导则推荐看周志华的西瓜书。

《Python深度学习》

  • 豆瓣评分:9.5
  • 豆瓣链接

Keras之父执笔,大神不但技术了得,文笔也好,涵盖了深度学习的基础知识、Keras使用模式以及深度学习最佳实践。

本书立足于人工智能的可达性和大众化,书中包含30多个代码示例,步骤讲解详细透彻,读者甚至无须具备机器学习相关背景知识即可展开阅读。本书的目标:在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。

《Python金融大数据分析》

  • 豆瓣评分:7.7
  • 豆瓣链接

本书的大部头同样有对 numpy,pandas, matplotlib, scipy 的详尽介绍,不同的是,介绍过程中,均是使用金融方面的样例。内容全面,除了基础的数据分析外,还介绍了 组合优化、估值、衍生品定价 等Python金融应用 。本书干货不少,值得金融分析领域的从业者一看。

《Python数据分析与数据化运营》第二版

  • 豆瓣评分:7.8
  • 豆瓣链接

本文作者是十余年的互联网从业者,数据以互联网运营业务为主题,展开对数据分析的基本知识、评估指标、应用场景、分析模型、小技巧、经验分享等,而且可贵的是知识点之间的衔接非常完备,不像传统工具书那样有章节间的知识断层。实用性非常强,其中的技巧、经验可以完全范化到各个领域。

《Python科学计算》

  • 豆瓣评分:8.0
  • 豆瓣链接
  • 购买链接

绝佳的数据分析库参考手册。相比市场上多数书籍均是介绍各个工具库的案例实践,本书则侧重于工具库的内在原理阐述,让你使用工具库时能更驾轻就熟。涉及的应用领域包括数值运算、统计分析、符号运算、图表可视化、图像处理以及界面设计等。作者功力深厚,写作严谨,每个章节都很扎实不注水,可见作者研究之深。

其他

  • 《基于Python的智能文本分析》:少有的极致工程化的NLP工具书籍
  • 《阿里云天池大赛赛题解析》:提供多个完整的数据建模案例,值得模仿与改造,标准化的流程不一定会出爆品,但良品率必然不差
  • 《Python大战机器学习》scikit-learn参考工具书,适合调参时翻阅
  • 《用户画像——方法论与工程化解决方案》:大数据环境下的数据分析工作

3. 工程开发

软件开发周期通常步骤冗长、且需多次迭代,其必然要对编程开发有对应的要求。

以 算法工程师 为例,其主要业务是将 数据分析师 的模型结论进行工程化部署,看似写个代码就好,实则工作量十足。

Python 自學 推薦

因而也十分有必要:

  1. 提高代码质量,保证程序的健壮、拓展性,以应对持续的需求迭代
  2. 提高项目工程化程度,自动化、标准化流程,以提高交付质量

学习路径推荐:从类级别的面向对象,到模块级别的设计模式,再到库级别的架构体系,到系统级别的持续交付,打造工程化、体系化的开发范式

《Python面向对象编程》

  • 豆瓣评分:8.9
  • 豆瓣链接

Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性,面向对象的封装特性能够提高类的易用性,减少编程过程中代码出错的风险;继承特性实现代码的复用;抽象让程序的设计和实现分离;而多态提高了程序的可扩展性。本书通过Python的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。

《Python3标准库》

  • 豆瓣评分:8.4
  • 豆瓣链接

对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,几乎能为各种常见任务提供完美解决方案!本书以案例驱动的方式讲解了标准库中一百多个模块的使用方法和工作原理,比标准库的官方文档更容易理解,是Python程序员熟练掌握和使用标准库的绝佳参考书籍。

《Head First 设计模式》

  • 豆瓣评分:9.2
  • 豆瓣链接

有了工具,不代表能用好工具。你还需要会一点经典的设计模式来整合他们。

本书相当赞的一本设计模式入门书。用实际的编程案例讲解算法设计中会遇到的各种问题和需求变更,并以此逐步推导出良好的设计模式解决办法。比传统的“四人书”好读很多。

《架构整洁之道》

  • 豆瓣评分:8.7
  • 豆瓣链接

本书是马丁大叔在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式及原则。

《Python进阶 —— 实际应用开发实战》

  • 豆瓣评分:新书
  • 豆瓣链接

很进阶的书,并且都采用了最新的技术,介绍了Python语言的在软件生命周期中的最佳实践和敏捷开发方法,涵盖测试、打包、发布、以及项目模板化,并对python语言的新特性asyncio展开详细描述。

《Python项目开发实战》(日)

  • 豆瓣评分:6.7
  • 豆瓣链接

难得的完整介绍python程序开发全生命周期的书,书本有点旧,但不妨碍其通用知识。

作者从Python的环境搭建开始讲起,介绍了Web应用的开发方法、项目管理及审查、测试与高效部署、服务器调试等内容,尽可能网罗了Python项目开发流程中的方方面面,有助于开发者建立有序生产环境,提高开发效率,让编程事半功倍。

其他

  • 《Python参考手册》:同样是参考性质的数据,本书阐述了python特性与最常用的十余个标准库,如果嫌《标准库》太厚,那么可以选择看本书。
  • 《Python高性能编程》:提高性能一直是python中很热的话题。本书就如何进行代码优化和加快实际应用的运行速度进行详细讲解,包含 数据结构优化、矩阵和矢量计算、并发、集群和工作队列等主题。
  • 《pytest测试实战》:工具书,系统性地介绍了主流测试框架pytest的各项功能

六、尾声

至此 Python 书籍推荐也描述清楚了,但是实际要成为领域的专家,不仅仅是学门技术语言就够的。工程师要学好操作系统、计算机网络、数据库开发、服务器管理;分析师也要不断钻研各自领域的业务特性与数据风格,并且学会和需求方打好配合。

学海无涯,T型人才到哪都稀缺,自学完Python,再继续拓展其他的知识边疆吧。

自学是艰苦的,但苦中有乐。

因为自学的生活无比充实,每天都能感到今天的自己比昨天有所提升,也能期待着明天的自己又比今天更强。

变得更强,与君共勉!

Python 自學 推薦