面向机器学习开发者的 Python 速成课程

您无需成为 Python 开发人员即可开始使用 Python 生态系统进行机器学习。

作为一名已经掌握一种或多种编程语言的开发人员,您能够非常快速地学习一门新语言,例如 Python。您只需要了解该语言的一些特性,就可以将您已经掌握的知识转移到新语言中。

在这篇文章中,您将获得 Python 以及机器学习所需的 NumPy、MatPlotLib 和 Pandas 等核心库的速成课程。

这将是足够的信息,可以帮助您阅读和理解用于机器学习的 Python 代码示例,并开始开发自己的脚本。如果您已经对 Python 有所了解,那么这篇文章将是对您的友好提醒。

通过我的新书《使用 Python 掌握机器学习启动您的项目,其中包含分步教程和所有示例的 Python 源代码文件。

让我们开始吧。

  • 2017 年 3 月更新:所有打印语句都已更新,以支持 Python 2 和 Python 3。
Crash Course in Python for Machine Learning Developers

面向机器学习开发者的 Python 速成课程
图片由John Clouston提供,保留部分权利。

Python 编程速成班

开始学习 Python 时,您需要了解一些关于语言语法的关键细节,以便能够阅读和理解 Python 代码。这包括:

  • 赋值
  • 流程控制
  • 数据结构
  • 函数

我们将依次介绍这些主题,并提供您可以输入和运行的小型独立示例。

请记住,在 Python 中,空格是有意义的。

需要 Python 机器学习方面的帮助吗?

参加我为期 2 周的免费电子邮件课程,探索数据准备、算法等等(附带代码)。

立即点击注册,还将免费获得本课程的 PDF 电子书版本。

赋值

作为一名程序员,赋值和类型对您来说应该不陌生。

字符串

运行示例将打印

数字

运行示例将打印

布尔值

运行示例将打印

多重赋值

运行示例将打印

无值

运行示例将打印

流程控制

您需要学习三种主要的流程控制类型:If-Then-Else 条件语句、For 循环和 While 循环。

If-Then-Else 条件示例

运行此示例将打印

For 循环示例

运行此示例将打印

While 循环示例

运行此示例将打印

数据结构

Python 中有三种最常用和最有用的数据结构。它们是元组、列表和字典。

元组示例

元组是只读的项目集合。

运行示例将打印

列表示例

列表使用方括号表示法,可以使用数组表示法进行索引。

运行示例将打印

字典示例

字典是将名称映射到值的,就像一张地图。请注意花括号的用法。

运行示例将打印

函数

Python 中最大的陷阱是空格。确保缩进代码后有一空行。

下面的示例定义了一个新函数来计算两个值的和,并用两个参数调用该函数。

运行示例将打印

NumPy 速成课程

NumPy 为 SciPy 提供了基础数据结构和操作。这些是数组 (ndarray),它们定义和操作效率很高。

创建数组

运行示例将打印

访问数据

数组表示法和范围可用于高效访问 NumPy 数组中的数据。

运行示例将打印

算术运算

NumPy 数组可以直接用于算术运算。

运行示例将打印

NumPy 数组还有很多内容,但这些示例让您大致了解了它们在处理大量数值数据时提供的效率。

Matplotlib 速成课程

Matplotlib 可用于创建绘图和图表。

该库通常按以下方式使用:

  1. 调用绘图函数并传入一些数据(例如 plot())。
  2. 调用许多函数来设置绘图的属性(例如标签和颜色)。
  3. 使绘图可见(例如 show())。

折线图

下面的例子从一维数据创建了一个简单的折线图。

运行该示例将生成

Simple Line Plot in Matplotlib

Matplotlib 中的简单折线图

散点图

以下是根据二维数据创建散点图的简单示例。

运行该示例将生成

Simple Scatter Plot in Matplotlib

Matplotlib 中的简单散点图

还有更多绘图类型和更多可以在绘图上设置的属性来配置它。

Pandas 速成课程

Pandas 提供了数据结构和功能,可以快速操作和分析数据。理解 Pandas 用于机器学习的关键是理解 Series 和 DataFrame 数据结构。

Series

Series 是一个一维数组,其行和列可以带标签。

运行示例将打印

您可以像 NumPy 数组一样访问 Series 中的数据,也可以像字典一样访问,例如:

运行示例将打印

DataFrame

DataFrame 是一个多维数组,其中行和列都可以带标签。

运行示例将打印

数据可以使用列名进行索引。

运行示例将打印

总结

您在这篇文章中涵盖了许多内容。您了解了 Python 的基本语法和用法,以及用于机器学习的四个关键 Python 库

  • NumPy
  • Matplotlib
  • Pandas

您现在掌握了足够的语法和用法信息,可以阅读和理解用于机器学习的 Python 代码,并开始创建自己的脚本。

您对本文中的示例有任何疑问吗?请在评论中提出您的问题,我将尽力回答。

发现 Python 中的快速机器学习!

Master Machine Learning With Python

在几分钟内开发您自己的模型

...只需几行 scikit-learn 代码

在我的新电子书中学习如何操作
精通 Python 机器学习

涵盖自学教程端到端项目,例如
加载数据可视化建模调优等等...

最终将机器学习带入
您自己的项目

跳过学术理论。只看结果。

查看内容

对《面向机器学习开发人员的 Python 速成课程》的 24 条回复

  1. MouChenghao 2016 年 9 月 9 日晚上 9:51 #

    我猜最后一个示例的输出有误,正确的输出应该是这样的:

    one column: a 1
    b 4
    Name: one, dtype: int64
    one column: a 1
    b 4
    Name: one, dtype: int64

    • Jason Brownlee 2016 年 9 月 10 日上午 7:14 #

      你说得对,已修复。我为了可读性对其进行了编辑并打断了输出。抱歉。

  2. Surya 2017 年 4 月 5 日下午 5:38 #

    嗨 Jason,在第一个字符串示例中,打印 data[0] 应该是 "h",而不是 4。

  3. 匿名用户 2017 年 9 月 22 日上午 6:43 #

    很棒的文章!快速修复一下,if-else-if 有点奇怪,“That is too fast”永远不会打印。

  4. Ahmed 2018 年 7 月 14 日下午 6:33 #

    如何在不执行代码的情况下进入下一行?

    >>> value = 99
    >>> if value >= 99
    ... print ('That is fast')
    File “”, line 2
    print ('That is fast')
    ^
    IndentationError: 期望一个缩进块
    >>>

  5. Ahmed 2018 年 7 月 17 日下午 2:16 #

    非常感谢,解释很清楚

  6. Carlos Morente 2018 年 8 月 4 日晚上 8:24 #

    嗨,Jason!

    写信只是想说您在字符串的“运行示例打印”中犯了一个小错误,第一个输出应该是“h”而不是“4”。

  7. Clint Laskowski 2018 年 12 月 11 日晚上 10:58 #

    对 Python、NumPy、Matplotlib 和 Pandas 的一个非常棒(且快速)的介绍。现在正在看你的书 🙂

  8. laz65 2019 年 12 月 6 日上午 10:10 #

    非常感谢 Jason 😉

  9. Robbie 2020 年 2 月 4 日下午 7:24 #

    嗨,Jason,

    在“IF-Then-Else 条件示例”中,我期望通过将值更改为 300,代码应该打印“That is too fast”。但是,输出是“That is fast”。您能解释一下吗?

    # 输出
    That is fast

    • Jason Brownlee 2020 年 2 月 5 日上午 8:05 #

      第一个条件首先执行并通过。

      您可以重新排列 if 语句或使用 switch/case 语句。

  10. MoJeeza 2020 年 2 月 6 日上午 7:26 #

    这应该可以。

  11. MoJeeza 2020 年 2 月 6 日上午 7:29 #

    粘贴时缩进不知何故丢失了

    • Jason Brownlee 2020 年 2 月 6 日上午 8:34 #

      我帮你修复了。通过添加 PRE 标签。

发表回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。