Python人工智能
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 为何用Python

在众多的语言中,为什么用Python来介绍人工智能呢?其根本原因在于:Python强大的功能与易于上手的特性。

1.2.1 选择Python的原因

引用开源运动的领袖人物Eric Raymond的说法:Python语言非常干净,设计优雅,具有出色的模块化特性。其最出色的地方在于,鼓励清晰易读的代码,特别适合以渐进开发的方式构造项目。Python的可读性使初学者也能看懂大部分代码,Python庞大的社区和大量的开发文档更能使初学者快速地实现许多令人惊叹的功能。对于Python程序,人们有时会戏称其为“可执行的伪代码”,这凸显了它的清晰性和可读性。

与Python强大功能相对应的是Python的速度比较慢。然而比起Python开发环境提供的海量高级数据结构(如序列、列表、元组、字典、集合等)和数之不尽的第三方库,再加上调整的CPU和近代发展起来的GPU编程,速度的问题就显得不值一提了。况且Python还能通过各种途径使用C/C++来编写核心代码,其强大的“胶水”功能使其速度与纯粹的C/C++相比已经相差不远了。Python有一个很特别的第三方库——NumPy,编写它的语言正是底层语言(C和FORTRAN),其支持向量、矩阵操作和具有优异的速度,使Python在科学计算这一领域大放异彩。

1.2.2 Python的优势

除了Python,确实存在诸如MATLAB和Mathematica这样的高效程序语言,它们对人工智能学习的支持也不错,MATLAB甚至还自带许多人工智能学习的应用。但重要的一点是,像MATLAB这样的正版软件需要花费上千美元。而Python是开源项目,几乎所有必要的组件都是完全免费的。

前面提到Python的速度问题,但是如果使用更快、底层的语言,如C和C++,学习机器学习,会不可避免地引发一个问题:即使实现一个非常简单的功能,也需要进行大量的代码编写和调试;在这期间,程序员很有可能忘记学习人工智能的初衷,迷失在代码的海洋中。

此外,使用Python来学习人工智能是和“不要过早优化”这句编程界的金句有着异曲同工之妙的。Python(几乎)唯一的缺陷就是速度,在初期进行快速检验算法、思想正误及开发时,速度算不上重要问题。如果解决问题的思想存在问题,那么即使拼命提高程序的运行效率,也只能使问题越来越大。先使用Python进行快速实现,必要时再用底层代码重写核心代码,从各方面来说这都是一个更好的选择。

1.2.3 Python的安装

Windows系统并非都默认安装了Python,因此用户可能需要下载并安装它,同时需要下载并安装一个文本编辑器。

1. 安装Python

下载Python 3.6.5(注意选择正确的操作系统)。下载后,安装界面如图1-4所示。

在图1-4中选择“Modify”命令,进行下一步。“Optional Features”界面如图1-5所示,可以看出Python包自带pip命令。

单击“Next”按钮,在弹出的界面中选择安装项及安装路径,如图1-6所示。

选择好安装项及安装路径后,单击“Install”按钮即可进行安装,安装完成界面如图1-7所示。

完成Python的安装后,再到PowerShell中输入python,看到进入终端的命令提示,则代表Python安装成功。终端显示安装成功后的信息如图1-8所示。

图1-4 安装界面

图1-5 “Optional Features”界面

图1-6 选择安装项及安装路径

图1-7 安装完成界面

图1-8 终端显示安装成功后的信息

2. 安装文本编辑器

要下载Windows Geany安装程序,可访问http://geany.org/,找到安装程序geany-1.25_ setup.exe或类似文件。下载安装程序后,运行并接受所有的默认设置。

启动Geany,执行“文件|另存为”菜单命令,将当前的空文件保存为“hello_world.py”,再在编辑窗口中输入代码:

效果如图1-9所示。

图1-9 Windows系统下的Geany

执行“生成|设置生成命令”菜单命令,将看到文字Compile和Execute,它们的旁边都有一个命令。默认情况下,这两个命令都是python(全部小写),但Geany不知道这个命令位于系统的什么地方,需要添加启动终端会话时使用的路径。在编译命令和执行中,添加命令python所在的驱动器和文件夹。编译命令效果如图1-10所示。

图1-10 编译命令效果

提示:务必确定空格和大小写都与图1-10中显示的完全相同。正确地设置这些命令后,单击“确定”按钮,即可成功运行程序。

在Geany中运行程序的方式有3种。为运行程序hello_world.py,可执行“生成|Execute”命令、单击按钮或按“F5”键。运行hello_world.py时,会弹出一个终端窗口,效果如图1-11所示。

图1-11 运行效果

1.2.4 使用pip安装第三方库

pip是Python安装各种第三方库(package)的工具。

对第三方库不太理解的读者,可以将库理解为供用户调用的代码组合。在安装某个库后,可以直接调用其中的功能,而不用自己编写代码来实现某个功能。这就像当我们需要为计算机杀毒时通常会选择下载一个杀毒软件一样,而不是自己写一个杀毒软件,直接使用杀毒软件中的杀毒功能来杀毒就可以了。这个例子中的杀毒软件就像是第三方库,杀毒功能就是第三方库中可以实现的功能。

下面例子介绍如何用pip安装第三方库bs4,它可以使用其中的BeautifulSoup解析网页。

(1)首先,打开cmd.exe。其在Windows中为cmd,在Mac中为terminal。在Windows中,cmd命令是提示符,输入一些命令后,cmd.exe可以执行对系统的管理。在“运行”对话框的“打开”文本框中输入“cmd”后按“Enter”键,系统会打开命令提示符窗口,如图1-12所示。在Mac中,可以直接在“应用程序”中打开terminal程序。

图1-12 “运行”对话框

(2)安装bs4的Python库。在命令提示符窗口中输入pip install bs4后按“Enter”键,如果显示“successfull installed”,则表示安装成功,如图1-13所示。

图1-13 成功安装bs4

除了bs4这个库,之后还会用到requests库、lxml库等其他第三方库,它们可以帮助我们更好地使用Python实现机器学习。

1.2.5 Python的变量

“变量”就像计算机内存中的一个盒子,其中可以存放一个值。如果程序稍后将用到一个已求值的表达式的结果,那么可以将它保存在一个变量中。

1. 赋值语句

使用“赋值语句”可以将值保存在变量中。赋值语句包含一个变量名、一个等号(称为赋值操作符),以及要存储的值。如果输入赋值语句sp=40,那么名为sp的变量将保存一个整型值40。

可以将变量看成一个带标签的盒子,值放入其中,如图1-14所示。

图1-14 存储变量

例如,在交互式环境中输入以下内容:

第一次存入一个值,变量就被“初始化”(或创建)。此后,可以在表达式中使用这个变量的值,以及其他变量的值。如果变量被赋了一个新值,旧值就被遗忘了。这就是为什么在示例结束时,sp的值为40,而不是42。这个过程“覆写”了该变量。在交互式环境中输入以下代码,深度覆写一个字符串:

2. 变量名

我们可以给变量取任何名字,只要它遵守以下3条规则。

(1)只能是一个词。

(2)只能包含字母、数字和下画线。

(3)不能以数字开头。

变量名是区分大小写的,这意味着sp、sP、Sp和SP是4个不同的变量。变量用小写字母开头是Python的惯例。好的变量名描述了它包含的数据。