在本文中,我们将介绍如何有效地学习 Python 。你应该知道「数据科学」是用于解决、探究问题并从数据中提取有价值信息的科学。
为了有效地做到这一点,你需要整理数据集、训练机器学习模型、可视化结果等等。
这是学习 Python 的最佳时机。
事实上,从就业需求增长的角度而言,福布斯将其列为十大技术技能。今天让我们来讨论一下这是为什么……
为什么要学习 Python?
Python 是世界上使用最广泛的语言之一,它拥有一个热情的用户社区:
Python 流行度,TIOBE 指数
它在数据科学专业中拥有更忠实的追随者。
有些人通过「你好,世界!」的简单程序来判断编程语言的质量。按照这个标准,Python 可以做得很好:
为了比较,下面是 Java 中的相同输出:
好吧,说真的,简单是 Python 的最大优势之一。由于其精确高效的语法,Python 可以用比其他语言更少的代码完成相同的任务。这使得实施解决方案的速度令人耳目一新。
此外,Python 充满活力的数据科学社区意味着您将能够找到大量的教程、代码片段和修复常见错误。Stackoverflow将成为您最好的朋友之一。
最后,Python 拥有用于数据分析和机器学习的 全明星库(也称为包)阵容,这大大减少了产生结果所需的时间。稍后会详细介绍这些。
如何有效地学习 Python ?
在我们讨论你需要学习的内容之前,让我们讨论一下你不需要的内容。
你不需要 CS 学位。
大多数数据科学家永远不会处理诸如内存泄漏、密码学或「Big O」符号之类的主题。只要您可以使用 Python 或 R 等脚本语言编写干净、符合逻辑的代码,就可以了。
你不需要完整的 Python 课程。Python 和数据科学不是同义词。
你不需要记住所有的语法。
相反,专注于掌握直觉,例如何时函数合适或条件语句如何工作。在谷歌搜索、阅读文档和良好的实践之后,你将逐渐记住语法。
我们建议采用自上而下的方法。
我们提倡自上而下的方法,目标是首先获得结果,然后随着时间的推移巩固概念。事实上,我们更愿意放弃「课堂」学习,转而进行现实世界的实践。
1、你将从学习核心编程概念开始。
2、接下来,您将获得基本数据科学库的实用知识。
3、最后,您将通过实际项目练习和完善您的技能。
这种方法可以让你获得更多乐趣的同时迅速掌握。
第 1 步:核心编程概念
有效的编程不是要记住语法,而是掌握一种新的思维方式。
因此,花点时间为核心编程概念打下坚实的基础。这些将帮助您将头脑中的解决方案转化为计算机的指令。
如果你是编程新手.......我们推荐优秀的 Automate the Boring Stuff with Python 一书,该书已在创作共用许可下免费在线发布。
这本书承诺「为初学者提供实用的编程」,并且让每节课都脚踏实地。阅读第 6 章 - 操作字符串并完成练习题。
如果你只需要复习 Python 语法,那么我们推荐以下视频:
https://youtu.be/N4mEzFDjqtA
同样,这一步的目标不是学习有关 Python 和编程的所有知识。相反,专注于直觉。
你应该能够回答以下问题:
• 整数、浮点数和字符串有什么区别?
• 如何使用 Python 作为计算器?
• 什么是 for 循环?我什么时候写一个?
• 函数的基本结构是什么?
• 如何使用条件语句(if...else...)来添加逻辑?
• 导入语句如何工作?
如果你想练习更多核心编程概念,请查看以下资源。
• Code Fights 是一个平台,有许多简短的编码挑战,可以在 5 分钟内完成(尽管它非常有趣,你可能会发现自己一次玩几个小时)。您将在此过程中获得积分并解锁新关卡,这也是跟踪你的进度的好方法。
• Python Challenge 是网络上最酷的谜题之一,所以不要被它 1990 年的图形吓到。你可以在 Python 脚本的帮助下完成所有 33 个级别。一位用户称它为「一种令人上瘾的学习 Python 细节的方式……」我同意!
• PracticePython.org 是 Python 中简短练习题的集合。它几乎每周都会更新一个新问题。真正好的是作者为每个问题包含了多个用户提交的解决方案,因此您可以看到解决它们的替代方法。
• How to Think Like a Computer Scientist 是一本很棒的交互式在线书籍,它通过关键的编程概念(使用 Python)进行了一次旋风之旅。如果您对编程完全陌生,这可能是一个不错的选择。这就像一个浓缩的「CS 101」课程。
第 2 步:基本数据科学库
接下来,我们将专注于「如何为数据科学学习 Python」的数据科学部分。
正如我们之前提到的,Python 拥有一系列用于数据科学的全明星库。库只是预先存在的函数和对象的捆绑,您可以将它们导入脚本以节省时间。
这些是我们推荐的有效获取新库的操作步骤:
1、打开一个新的 Jupyter Notebook(见下文)。
2、阅读图书馆的文档 30 分钟,了解其模块的高级介绍。
3、将库导入您的 Jupyter Notebook。
4、按照其分步快速入门教程查看库的运行情况。
5、再花 30 分钟查看它的文档,以了解它还能做什么。
我们不建议现在更深入地研究图书馆,因为当你进入项目时,你可能会忘记大部分你学到的东西。相反,旨在发现每个图书馆的能力。
如果你按照我们上面的建议通过 Anaconda 捆绑包安装了 Python,那么Jupyter Notebook也会附带它。Jupyter Notebook 是一个轻量级的 IDE,深受数据科学家的喜爱。我们为你的项目推荐它。你可以通过 Anaconda 附带的 Anaconda Navigator 打开一个新笔记本。查看此短视频以获取说明。
这些是你需要的基本库:
数字货币
NumPy 允许简单高效的数值计算,许多其他数据科学库都建立在它之上。
• 文档
• 快速入门教程
熊猫
Pandas 是用于数据结构和探索性分析的高性能库。它建立在 NumPy 之上。
• 文档
• 快速入门教程
Matplotlib
Matplotlib 是一个灵活的绘图和可视化库。它功能强大但有些麻烦。您现在可以选择跳过 Matplotlib 并使用 Seaborn 开始(请参阅下面的 Seaborn 建议)。
• 文档
• 快速入门教程
Scikit-学习
Scikit-Learn 是 Python 中首屈一指的通用机器学习库。它有许多流行的算法和模块,用于预处理、交叉验证等。
• 文档
• 快速入门教程
奖金:Seaborn
Seaborn 使绘制常见数据可视化变得更加容易。它建立在 Matplotlib 之上,并提供了一个更令人愉快的高级包装器。
• 文档
• 快速入门教程
第 3 步:端到端项目
到目前为止,你将对编程有基本的了解,并对基本库有一定的应用知识。这实际上涵盖了你开始使用数据科学所需的大部分 Python。
此时,有些学生会感到有些不知所措。没关系,这很正常。
如果你采用缓慢且传统的自下而上的方法,你可能不会感到不知所措,但到达这里需要 10 倍的时间。现在的关键是立即投入并开始将所有东西粘合在一起。同样,我们到这里的目标只是学到足够的东西才能开始。
接下来,是时候通过大量的实践和项目来巩固你的知识了。你有几个选择:
Kaggle 比赛
第一种选择是参加 Kaggle,这是一个举办数据科学竞赛的网站。
Kaggle 的主要优势是每个项目都是独立的。你将获得数据集、目标和教程以帮助您入门。
竞赛的主要缺点是它们通常不能代表真实世界的数据科学。「入门」比赛太基础了,而标准比赛(即有奖池的比赛)通常对初学者来说太难了。
如果你对这条路径感兴趣,请查看我们的 Kaggle 初学者指南。
DIY项目
另一种选择是构建你自己的项目并选择你感兴趣的数据集。
这种方法的主要优点是项目更能代表现实世界的数据科学。你可能需要定义自己的目标、收集数据、清理数据集、设计功能等等。
DIY 项目的缺点是你需要已经熟悉适当的数据科学工作流程。没有一个,你可能会错过重要步骤或在不知道如何继续的情况下陷入困境。如果你选择这条路,请查看我们的文章,其中包含几个 DIY 项目想法。