人工智能和机器学习系列(一) Python 基础

2021-08-24 10:32:26 浏览数 (4078)

Python 是人工智能和机器学习的首要编程语言。本文将向您介绍重要的 Python 基础知识,包括:从何处获取 Python、Python 2 和 Python 3 之间的区别以及熟悉的语言概念(如语法和变量),如何在 Python 中工作。

简介

当开发人员开始使用人工智能 (AI) 和机器学习 (ML) 软件时,他们今天最有可能遇到的编程语言是 Python 和 C/C++。大多数情况下,C/C++ 用于专门的应用程序,例如嵌入式物联网 (IoT) 和高度优化的、特定于硬件的神经网络库。

Python 是大多数 AI 和 ML 应用程序开发中最常用的语言,即使是为那些 IoT 和硬件加速应用程序进行原型设计和优化模型也是如此。

对于从 C#、Java 甚至 JavaScript 等其他语言开始使用 Python 的开发人员,本文将向您介绍 Python 独特语法的关键元素,例如循环,以及它们与您可能了解的内容有何不同。

本系列的其他文章将探讨如何使用可供 AI 和 ML 开发人员使用的众多 Python 库,例如 OpenCV、Natural Language Toolkit (NLTK)、Keras 和 TensorFlow。

本文将向您介绍重要的 Python 基础知识,包括:

  • 从哪里获得 Python
  • Python 2 和 Python 3 的区别
  • 熟悉的语言概念(如语法和变量)如何在 Python 中工作

从哪里获得 Python

开发人员通常会问的第一个问题是:我从哪里得到 Python?

答案是:这取决于您的系统和编程环境。默认情况下,Python 安装在 Mac OS 和一些 Linux 发行版上。对于没有 Python 的系统,您可以从以下位置获取安装程序:

另一种选择是Jupyter Notebooks和 JupyterLabs 交互式开发工具。

第三种选择——我们推荐并将用于这些 Python AI/ML 文章的选择——Anaconda,一个专为统计、数据科学和 AI/ML 项目设计的综合软件平台。

Anaconda 包括 JupyterLab(前面提到的基于 Web 的 IDE)以及您在学习 AI 时可能需要的许多其他工具、库和示例数据源。一旦我们了解机器学习库、数据集和可视化,您会发现它们很有帮助。

哪个版本:Python 2 或 Python 3?

对于语言新手来说,使用 Python 2 还是 Python 3 是一个常见的困惑来源。

Python 2 是一个仍然经常使用的旧版本,并且仍然作为 Python 的默认版本安装在一些当前的操作系统中。对 Python 2 的官方支持将于 2020 年初结束。

如果您刚开始使用 Python,则应该使用 Python 3。

Python 3 的持续支持和开发仍在继续。这也适用于您可能想要使用的库:有些可能仍支持这两个版本,但许多将完全转移到 Python 3 或可能会这样做。

你怎么知道你的系统上安装了哪个版本?

在 Linux 系统和 Mac OS 上,该python命令默认为 ​Python 2​,您可以将python3命令用于 ​Python 3​。

要确定系统上安装了哪个版本,请转到终端窗口或命令提示符并运行以下命令:

python --version

如果安装了 Python,它会返回python命令使用的 Python 版本。

Python 2.7.16

python3 --version命令对 Python 3 执行相同的操作。

Python 3.7.4

识别代码示例中的 Python 版本

在线教程并不总是明确提及它们是使用 Python 2 还是 Python 3。幸运的是,您可以使用一些启发式方法来确定教程使用的版本。

一是在标准输出上打印文本的方式不同。在 Python 3 中,只有一种有效的方法可以做到这一点:

# Python 2 and Python 3
# This is a comment, by the way
print("Hello, world!")

该语法在 Python 2 中也有效,但 Python 2 示例更常用这种替代语法:

# This only works in Python 2
print "Hello, world!"

Python 语言基础:类型和变量

Python 是动态类型的。类型不与变量名相关联,只与变量值相关联。这与静态类型语言(例如 C# 和 Java)不同,在这些语言中,如果您定义了以后int i = 0;,就无法编写i = "test";。在 Python 中,你可以。

Python 是强类型的(例如,JavaScript 是弱类型的)。在强类型语言中,对不同类型值之间的操作有更严格的限制。在 JavaScript 中,您可以执行"abc" + 1并以 string 结束"abc1",但是如果您在 Python 中尝试相同的操作,您将收到一个错误,表明您无法将字符串与整数连接起来。

在 Python 中分配变量可以这样完成:

name = "value"

请注意,行不以分号结尾。

定义和调用函数如下所示:

def say_hello(who):
    print("Hello ", who)

name = input("Your name: ")
say_hello(name)

这是在 Jupyter Notebook 中的样子:

与 C# 等语言不同,Python 不使用方括号来指定哪些代码行属于函数。相反,Python 使用缩进。具有相同缩进级别的一系列行形成一个块。缩进代码的推荐方法是每个缩进级别使用四个空格。但是,您也可以使用制表符或其他数量的空格。缩进只需在块内保持一致。

您可以使用return关键字从函数返回一个值:

def sum(a, b):
    return a + b

如果函数没有return语句,它将返回None(Python's null)。

Python 也支持高阶函数(返回函数或将函数作为参数的函数)。例如,该operation函数返回两个函数之一:

def sum(a, b):
    return a + b

def difference(a, b):
    return a - b

def operation(calculate_sum):
    if calculate_sum:
        return sum
    else:
        return difference

然后可以这样使用:

operation(True)(5, 4)


结论

我们讨论了 Python 2 和 Python 3 之间的区别,并了解了如何识别代码片段中使用的版本。然后我们了解了 Python 的一些基础知识:类型、变量和函数。更多关于Python3,可以学习一下Python3相关教程的内容。