数据科学家的完整学习路径(Python版)

数据科学家的完整学习路径(Python版)

笑虎 笑虎
6 个月前

这篇文章是2年前翻译的,发表在伯乐翻译小组,曾经在微博上被大量转发、收藏,所以这里拿过来再次和大家分享一下。原文地址:learning-path-data-science-python

从Python菜鸟到Python Kaggler的旅程(译注:Kaggle是一个数据建模和数据分析竞赛平台)

假如你想成为一个数据科学家,或者已经是数据科学家的你想扩展你的技能,那么你已经来对地方了。本文的目的就是给数据分析方面的Python新手提供一个完整的学习路径。该路径提供了你需要学习的利用Python进行数据分析的所有步骤的完整概述。如果你已经有一些相关的背景知识,或者你不需要路径中的所有内容,你可以随意调整你自己的学习路径,并且让大家知道你是如何调整的。

步骤0:热身

开始学习旅程之前,先回答第一个问题:为什么使用Python?或者,Python如何发挥作用?
观看DataRobot创始人Jeremy在PyCon Ukraine 2014上的30分钟演讲,来了解Python是多么的有用。

步骤1:设置你的机器环境

现在你已经决心要好好学习了,也是时候设置你的机器环境了。最简单的方法就是从Continuum.io上下载分发包Anaconda。Anaconda将你以后可能会用到的大部分的东西进行了打包。采用这个方法的主要缺点是,即使可能已经有了可用的底层库的更新,你仍然需要等待Continuum去更新Anaconda包。当然如果你是一个初学者,这应该没什么问题。

如果你在安装过程中遇到任何问题,你可以在这里找到不同操作系统下更详细的安装说明。

步骤2:学习Python语言的基础知识

你应该先去了解Python语言的基础知识、库和数据结构。Codecademy上的Python课程是你最好的选择之一。完成这个课程后,你就能轻松的利用Python写一些小脚本,同时也能理解Python中的类和对象。

具体学习内容:列表Lists,元组Tuples,字典Dictionaries,列表推导式,字典推导式。
任务:解决HackerRank上的一些Python教程题,这些题能让你更好的用Python脚本的方式去思考问题。
替代资源:如果你不喜欢交互编码这种学习方式,你也可以学习谷歌的Python课程。这个2天的课程系列不但包含前边提到的Python知识,还包含了一些后边将要讨论的东西。

步骤3:学习Python语言中的正则表达式

你会经常用到正则表达式来进行数据清理,尤其是当你处理文本数据的时候。学习正则表达式的最好方法是参加谷歌的Python课程,它会让你能更容易的使用正则表达式。

任务:做关于小孩名字的正则表达式练习

如果你还需要更多的练习,你可以参与这个文本清理的教程。数据预处理中涉及到的各个处理步骤对你来说都会是不小的挑战。

步骤4:学习Python中的科学库—NumPy, SciPy, Matplotlib以及Pandas

从这步开始,学习旅程将要变得有趣了。下边是对各个库的简介,你可以进行一些常用的操作:

  • 根据NumPy教程进行完整的练习,特别要练习数组arrays。这将会为下边的学习旅程打好基础。
  • 接下来学习Scipy教程。看完Scipy介绍和基础知识后,你可以根据自己的需要学习剩余的内容。
  • 这里并不需要学习Matplotlib教程。对于我们这里的需求来说,Matplotlib的内容过于广泛。取而代之的是你可以学习这个笔记中前68行的内容。
  • 最后学习Pandas。Pandas为Python提供DataFrame功能(类似于R)。这也是你应该花更多的时间练习的地方。Pandas会成为所有中等规模数据分析的最有效的工具。作为开始,你可以先看一个关于Pandas的10分钟简短介绍,然后学习一个更详细的Pandas教程
您还可以学习两篇博客 Exploratory Data Analysis with PandasData munging with Pandas中的内容。

额外资源:

  • 如果你需要一本关于Pandas和Numpy的书,建议Wes McKinney写的“Python for Data Analysis”
  • 在Pandas的文档中,也有很多Pandas教程,你可以在这里查看。

任务:尝试解决哈佛CS109课程的这个任务

步骤5:有用的数据可视化

参加CS109的这个课程。你可以跳过前边的2分钟,但之后的内容都是干货。你可以根据这个任务来完成课程的学习。

步骤6:学习Scikit-learn库和机器学习的内容

现在,我们要开始学习整个过程的实质部分了。Scikit-learn是机器学习领域最有用的Python库。这里是该库的简要概述。完成哈佛CS109课程的课程10到课程18,这些课程包含了机器学习的概述,同时介绍了像回归、决策树、整体模型等监督算法以及聚类等非监督算法。你可以根据各个课程的任务来完成相应的课程。

额外资源:

  • 如果说有那么一本书是你必读的,推荐Programming Collective Intelligence。这本书虽然有点老,但依然是该领域最好的书之一。
  • 此外,你还可以参加来自Yaser Abu-Mostafa的机器学习课程,这是最好的机器学习课程之一。如果你需要更易懂的机器学习技术的解释,你可以选择来自Andrew Ng的机器学习课程,并且利用Python做相关的课程练习。
  • Scikit-learn的教程

任务:尝试Kaggle上的这个挑战

步骤7:练习,练习,再练习

恭喜你,你已经完成了整个学习旅程。

你现在已经学会了你需要的所有技能。现在就是如何练习的问题了,还有比通过在Kaggle上和数据科学家们进行竞赛来练习更好的方式吗?深入一个当前Kaggle上正在进行的比赛,尝试使用你已经学过的所有知识来完成这个比赛。

步骤8:深度学习

现在你已经学习了大部分的机器学习技术,是时候关注一下深度学习了。很可能你已经知道什么是深度学习,但是如果你仍然需要一个简短的介绍,可以看这里

我自己也是深度学习的新手,所以请有选择性的采纳下边的一些建议。deeplearning.net上有深度学习方面最全面的资源,在这里你会发现所有你想要的东西—讲座、数据集、挑战、教程等。你也可以尝试参加Geoff Hinton的课程,来了解神经网络的基本知识。

附言:如果你需要大数据方面的库,可以试试Pydoop和PyMongo。大数据学习路线不是本文的范畴,是因为它自身就是一个完整的主题。

已标记关键词 清除标记
内容简介 · · · · · · 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介。 全书共21章,详细介绍Python语言编程的方方面面。本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量、表达式、语句、函数和数据结构。书中还探讨了如何处理文件和数据库,如何理解对象、方法和面向对象编程,如何使用调试技巧来修正语法错误、运行时错误和语义错误。每一章都配有术语表和练习题,方便读者巩固所学的知识和技巧。此外,每一章都抽出一节来讲解如何调试程序。作者针对每章所专注的语言特性,或者相关的开发问题,总结了调试的方方面面。 本书的第2与第1相比,做了很多更新,将编程语言从Python 2升级成Python 3,并修改了很多示例和练习,增加了新的章节,更全面地介绍Python语言。 这是一本实用的学习指南,适合没有Python编程经验的程序员阅读,也适合高中或大学的学生、Python爱好者及需要了解编程基础的人阅读。对于首次接触程序设计的人来说,是一本不可多得的佳作。 作者简介 · · · · · · [美] 艾伦 B. 唐尼(Allen B. Downey) Allen Downey是欧林工程学院的计算机科学教授,曾任教于韦尔斯利学院、科尔比学院和加州大学伯克利分校。他是加州大学伯克利分校的计算机科学博士,并拥有MIT的硕士和学士学位。 译者介绍 赵普明 毕业清华大学计算机系,从事软件开发行业近10年。从2.3本开始接触Python,工作中使用Python编写脚本程序,用于快速原型构建以及日志计算等日常作业;业余时,作为一个编程语言爱好者,对D、Kotlin、Lua、Clojure、Scala、Julia、Go等语言均有了解,但至今仍为Python独特的风格、简洁的设计而惊叹。 目录 · · · · · · 第1章 程序之道 1 1.1 什么是程序 1 1.2 运行Python 2 1.3 第一个程序 3 1.4 算术操作符 3 1.5 值和类型 4 1.6 形式语言和自然语言 5 1.7 调试 6 1.8 术语表 7 1.9 练习 8 第2章 变量、表达式和语句 9 2.1 赋值语句 9 2.2 变量名称 9 2.3 表达式和语句 10 2.4 脚本模式 11 2.5 操作顺序 12 2.6 字符串操作 13 2.7 注释 13 2.8 调试 14 2.9 术语表 15 2.10 练习 16 第3章 函数 17 3.1 函数调用 17 3.2 数学函数 18 3.3 组合 19 3.4 添加新函数 19 3.5 定义和使用 21 3.6 执行流程 21 3.7 形参和实参 22 3.8 变量和形参是局部的 23 3.9 栈图 23 3.10 有返回值函数和无返回值函数 24 3.11 为什么要有函数 25 3.12 调试 26 3.13 术语表 26 3.14 练习 27 第4章 案例研究:接口设计 30 4.1 turtle模块 30 4.2 简单重复 31 4.3 练习 32 4.4 封装 33 4.5 泛化 34 4.6 接口设计 34 4.7 重构 35 4.8 一个开发计划 36 4.9 文档字符串 37 4.10 调试 38 4.11 术语表 38 4.12 练习 39 第5章 条件和递归 41 5.1 向下取整除法操作符和求模操作符 41 5.2 布尔表达式 42 5.3 逻辑操作符 42 5.4 条件执行 43 5.5 选择执行 43 5.6 条件链 44 5.7 嵌套条件 44 5.8 递归 45 5.9 递归函数的栈图 46 5.10 无限递归 47 5.11 键盘输入 47 5.12 调试 48 5.13 术语表 49 5.14 练习 50 第6章 有返回值的函数 53 6.1 返回值 53 6.2 增量开发 54 6.3 组合 56 6.4 布尔函数 57 6.5 再谈递归 58 6.6 坚持信念 59 6.7 另一个示例 60 6.8 检查类型 60 6.9 调试 61 6.10 术语表 63 6.11 练习 63 第7章 迭代 65 7.1 重新赋值 65 7.2 更新变量 66 7.3 while语句 66 7.4 break语句 68 7.5 平方根 68 7.6 算法 70 7.7 调试 70 7.8 术语表 71 7.9 练习 71 第8章 字符串 73 8.1 字符串是一个序列 73 8.2 len 74 8.3 使用for循环进行遍历 74 8.4 字符串切片 75 8.5 字符串是不可变的 
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页